bolides.fov_utils.get_satellites#
- bolides.fov_utils.get_satellites(lat, lon, time, numbers_only=False)[source]#
Determine which GOES satellites’ GLM could observe a spatiotemporal point.
Given a point (or several points) in space and time, returns the GOES satellites (16, 17, 18, 19) whose Geostationary Lightning Mapper was both operational and had the point within its field of view at that time. This is the per-point inverse of
filter_observation, and does not require aBolideDataFrame.The operational windows and FOV orientations come from the packaged
data/glm##_obs.csvfiles (seeget_obs_intervals); the FOV polygons come fromget_boundary. GOES-18 reuses the GOES-West FOV and GOES-19 the GOES-East FOV.- Parameters:
- lat, lon: float or array-like of float
Latitude and longitude of the point(s), in degrees (EPSG:4326).
- time: str, `~datetime.datetime`, or array-like
The time(s) of the point(s). Strings are parsed with
fromisoformat; naive times are assumed to be UTC. Must be the same length aslatandlon(a single point may use scalars for all three).- numbers_only: bool
If
False(default), return structured per-satellite information. IfTrue, return only the satellite numbers.
- Returns:
DataFrameor listIf
numbers_onlyisFalse(default): aDataFramewith one row per observing (point, satellite), with columnslatitude,longitude,time,satellite,position('east'/'west'),boundary,inverted,'Instrument Operational'and'Instrument Disabled'(the latter is'Still In Operation'for satellites that have not been retired). For array input a leadingpointcolumn gives the 0-based index into the inputs.If
numbers_onlyisTrue: for a single point, a sorted list of observing satellite integers; for array input, a list of such lists, one per point.