python-awips/_sources/examples/generated/Satellite_Imagery.rst.txt

991 lines
27 KiB
Text
Raw Normal View History

=================
Satellite Imagery
=================
`Notebook <http://nbviewer.ipython.org/github/Unidata/python-awips/blob/master/examples/notebooks/Satellite_Imagery.ipynb>`_
Python-AWIPS Tutorial Notebook
--------------
Objectives
==========
- Use python-awips to connect to an EDEX server
- Investigate available satellite imagery
- Define and filter request specifically for GOES mesoscale imagery
- Access satellite data in gridded format
- Create rendered images using `Matplotlib <https://matplotlib.org>`__
--------------
Table of Contents
-----------------
| `1
Imports <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#imports>`__\
| `2 EDEX
Connection <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#edex-connection>`__\
| `3 Function:
make_map() <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#function-make-map>`__\
| `4 Investigate Available
Data <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#investigate-available-data>`__\
|     `4.1
Sources <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#sources>`__\
|     `4.2 Physical
Elements <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#physical-elements>`__\
|     `4.3 Creating
Entities <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#creating-entities>`__\
|     `4.4
Sectors <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#sectors>`__\
|     `4.5 All
Products <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#all-products>`__\
| `5 Render GOES East Mesoscale
Sectors <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#render-goes-east-mesoscale-sectors>`__\
| `6 See
Also <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#see-also>`__\
|     `6.1 Related
Notebooks <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#related-notebooks>`__\
|     `6.2 Additional
Documentation <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html#additional-documentation>`__\
1 Imports
---------
The imports below are used throughout the notebook. Note the first
import is coming directly from python-awips and allows us to connect to
an EDEX server. The subsequent imports are for data manipulation and
visualization.
.. code:: ipython3
from awips.dataaccess import DataAccessLayer
import cartopy.crs as ccrs
import cartopy.feature as cfeat
import matplotlib.pyplot as plt
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
from datetime import datetime, UTC
from pytz import timezone as tz
`Top <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html>`__
--------------
2 EDEX Connection
-----------------
First we establish a connection to Unidatas public EDEX server. With
that connection made, we can create a `new data request
object <http://unidata.github.io/python-awips/api/IDataRequest.html>`__
and set the data type to **satellite**.
.. code:: ipython3
# Create an EDEX data request
DataAccessLayer.changeEDEXHost("edex-beta.unidata.ucar.edu")
request = DataAccessLayer.newDataRequest()
request.setDatatype("satellite")
`Top <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html>`__
--------------
3 Function: make_map()
----------------------
In order to plot more than one image, its easiest to define common
logic in a function. Here, a new function called **make_map** is
defined. This function uses the `matplotlib.pyplot package
(plt) <https://matplotlib.org/3.3.3/api/_as_gen/matplotlib.pyplot.html>`__
to create a figure and axis. The coastlines (continental boundaries) are
added, along with lat/lon grids.
.. code:: ipython3
def make_map(bbox, projection=ccrs.PlateCarree()):
fig, ax = plt.subplots(figsize=(10,12),
subplot_kw=dict(projection=projection))
ax.set_extent(bbox)
ax.coastlines(resolution='50m')
gl = ax.gridlines(draw_labels=True)
gl.top_labels = gl.right_labels = False
gl.xformatter = LONGITUDE_FORMATTER
gl.yformatter = LATITUDE_FORMATTER
return fig, ax
`Top <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html>`__
--------------
4 Investigate Available Data
----------------------------
To see what data are all available, lets look at which optional
identifiers satellite data uses.
.. code:: ipython3
# Get optional identifiers for satellite datatype
identifiers = set(DataAccessLayer.getOptionalIdentifiers(request))
print("Available Identifiers:")
for id in identifiers:
if id.lower() == 'datauri':
continue
print(" - " + id)
.. parsed-literal::
Available Identifiers:
- source
- physicalElement
- creatingEntity
- sectorID
4.1 Sources
~~~~~~~~~~~
.. code:: ipython3
# Show available sources
identifier = "source"
sources = DataAccessLayer.getIdentifierValues(request, identifier)
print(identifier + ":")
print(list(sources))
.. parsed-literal::
source:
['GTDO1', 'RAMMB', 'WCDAS', 'RBU', 'UCAR', 'NSOF', 'McIDAS']
4.2 Physical Elements
~~~~~~~~~~~~~~~~~~~~~
.. code:: ipython3
# Show available physicalElements
identifier = "physicalElement"
elements = DataAccessLayer.getIdentifierValues(request, identifier)
print(identifier + ":")
print(list(elements))
.. parsed-literal::
physicalElement:
['Imager 6.7-6.5 micron IR (WV)', 'CH-02-0.64um', 'VMP-151.30hPa', 'CTT', 'CH-07-3.90um', 'VTP-878.60hPa', 'VMP-706.60hPa', 'CH-12-9.61um', 'VMP-496.60hPa', 'SI', 'CH-06-2.25um', 'NTP', 'DVL', 'CL', 'VMP-71.50hPa', 'DustLow', 'VTP-931.50hPa', 'VTP-103.00hPa', 'LI', 'VMP-555.20hPa', 'Imager 12 micron IR', 'IceTemp', 'CF2', 'VMP-729.90hPa', 'VTP-407.50hPa', 'CAPE', 'HHC', 'VMP-1014.00hPa', 'VMP-535.20hPa', 'VTP-777.80hPa', 'VTP-535.20hPa', 'VTP-904.90hPa', 'CH-10-7.34um', 'VTP-1014.00hPa', 'ACTP', 'VTP-661.20hPa', 'IceAge3', 'VTP-9.51hPa', 'GLM_Flash_Extent_Density', 'GLM_Flash_Extent_Density_w5u1', 'CF3', 'VMP-852.80hPa', 'CSM', 'TT', 'IceAge8', 'VTP-706.60hPa', 'GLM_Minimum_Flash_Area_w5u1', 'SmokeMed', 'CH-09-6.95um', 'VMP-753.60hPa', 'VMP-878.60hPa', 'VTP-459.70hPa', 'DustMed', 'VMP-103.00hPa', 'CH-08-6.19um', 'VTP-151.30hPa', 'VTP-575.50hPa', 'VMP-407.50hPa', 'VMP-661.20hPa', 'VMP-777.80hPa', 'FDC Temp', 'DHR', 'IceMask', 'GLM_Total_Optical_Energy_w5u1_tile', 'CH-15-12.30um', 'VTP-29.12hPa', 'MVFR_Fog_Prob', 'CF5', 'VMP-359.00hPa', 'VMP-827.40hPa', 'VMP-986.10hPa', 'CTH', 'SSTF', 'VMP-201.00hPa', 'VMP-300.00hPa', 'FDC Power', 'VTP-852.80hPa', 'VMP-575.50hPa', 'CH-13-10.35um', 'Fog_Depth', 'TCF', 'CH-04-1.38um', 'DustHigh', 'VTP-683.70hPa', 'Imager Visible', 'GLM_Minimum_Flash_Area', 'VTP-729.90hPa', 'IFR_Fog_Prob', 'VMP-958.60hPa', 'VTP-753.60hPa', 'VMP-931.50hPa', 'VTP-555.20hPa', 'CH-05-1.61um', 'VTP-201.00hPa', 'RRQPE', 'LST', 'AOD', 'FSC', 'COD', 'VTP-827.40hPa', 'IceThickness', 'N1P', 'LIFR_Fog_Prob', 'VMP-596.30hPa', 'VTP-496.60hPa', 'TPW', 'VMP-904.90hPa', 'VMP-683.70hPa', 'VTP-802.40hPa', 'VTP-958.60hPa', 'VTP-596.30hPa', 'Fire_Mask', 'FDC Area', 'CH-11-8.50um', 'VMP-51.53hPa', 'EET', 'VTP-247.40hPa', 'VMP-802.40hPa', 'CTP', 'CH-01-0.47um', 'CH-16-13.30um', 'VMP-617.50hPa', 'VTP-51.53hPa', 'SST', 'VTP-617.50hPa', 'CF1', 'GLM_Total_Optical_Energy_tile', 'VMP-9.51hPa', 'VMP-247.40hPa', 'CF4', 'Imager 3.5-4.0 micron IR (Fog)', 'IceConc', 'SmokeHigh', 'KI', 'VTP-300.00hPa', 'VTP-20.92hPa', 'VTP-359.00hPa', 'Imager 11 micron IR', 'SmokeLow', 'VMP-20.92hPa', 'VMP-29.12hPa', 'VMP-459.70hPa', 'CH-03-0.87um', 'VTP-71.50hPa', 'CH-14-11.20um', 'VTP-986.10hPa']
4.3 Creating Entities
~~~~~~~~~~~~~~~~~~~~~
.. code:: ipython3
# Show available creatingEntities
identifier = "creatingEntity"
creatingEntities = DataAccessLayer.getIdentifierValues(request, identifier)
print(identifier + ":")
print(list(creatingEntities))
.. parsed-literal::
creatingEntity:
['GOES-18', 'GEOCOLR', 'GOES-16', 'NEXRCOMP', 'UNIWISC', 'CLDSNOW', 'DBRDUST']
4.4 Sectors
~~~~~~~~~~~
.. code:: ipython3
# Show available sectorIDs
identifier = "sectorID"
sectorIDs = DataAccessLayer.getIdentifierValues(request, identifier)
print(identifier + ":")
print(list(sectorIDs))
.. parsed-literal::
sectorID:
['EMESO-2', 'WCONUS', 'AKREGI', 'WMESO-1', 'WMESO-2', 'WFD', 'NEXRCOMP', 'ECONUS', 'AREA3100', 'Antarctic', 'PRREGI', 'EMESO-1', 'AREA3101', 'AREA0700', 'Arctic', 'AREA0600', 'EFD']
4.5 All Products
~~~~~~~~~~~~~~~~
.. code:: ipython3
# Construct a full satellite product tree
for entity in creatingEntities:
print(entity)
request = DataAccessLayer.newDataRequest("satellite")
request.addIdentifier("creatingEntity", entity)
availableSectors = DataAccessLayer.getAvailableLocationNames(request)
availableSectors.sort()
for sector in availableSectors:
print(" - " + sector)
request.setLocationNames(sector)
availableProducts = DataAccessLayer.getAvailableParameters(request)
availableProducts.sort()
for product in availableProducts:
print(" - " + product)
.. parsed-literal::
GOES-18
- AKREGI
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- WCONUS
- ACTP
- AOD
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- Fog_Depth
- IFR_Fog_Prob
- KI
- LI
- LIFR_Fog_Prob
- LST
- MVFR_Fog_Prob
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- VMP-1014.00hPa
- VMP-103.00hPa
- VMP-151.30hPa
- VMP-20.92hPa
- VMP-201.00hPa
- VMP-247.40hPa
- VMP-29.12hPa
- VMP-300.00hPa
- VMP-359.00hPa
- VMP-407.50hPa
- VMP-459.70hPa
- VMP-496.60hPa
- VMP-51.53hPa
- VMP-535.20hPa
- VMP-555.20hPa
- VMP-575.50hPa
- VMP-596.30hPa
- VMP-617.50hPa
- VMP-661.20hPa
- VMP-683.70hPa
- VMP-706.60hPa
- VMP-71.50hPa
- VMP-729.90hPa
- VMP-753.60hPa
- VMP-777.80hPa
- VMP-802.40hPa
- VMP-827.40hPa
- VMP-852.80hPa
- VMP-878.60hPa
- VMP-9.51hPa
- VMP-904.90hPa
- VMP-931.50hPa
- VMP-958.60hPa
- VMP-986.10hPa
- VTP-1014.00hPa
- VTP-103.00hPa
- VTP-151.30hPa
- VTP-20.92hPa
- VTP-201.00hPa
- VTP-247.40hPa
- VTP-29.12hPa
- VTP-300.00hPa
- VTP-359.00hPa
- VTP-407.50hPa
- VTP-459.70hPa
- VTP-496.60hPa
- VTP-51.53hPa
- VTP-535.20hPa
- VTP-555.20hPa
- VTP-575.50hPa
- VTP-596.30hPa
- VTP-617.50hPa
- VTP-661.20hPa
- VTP-683.70hPa
- VTP-706.60hPa
- VTP-71.50hPa
- VTP-729.90hPa
- VTP-753.60hPa
- VTP-777.80hPa
- VTP-802.40hPa
- VTP-827.40hPa
- VTP-852.80hPa
- VTP-878.60hPa
- VTP-9.51hPa
- VTP-904.90hPa
- VTP-931.50hPa
- VTP-958.60hPa
- VTP-986.10hPa
- WFD
- ACTP
- AOD
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- FSC
- Fire_Mask
- GLM_Flash_Extent_Density
- GLM_Flash_Extent_Density_w5u1
- GLM_Minimum_Flash_Area
- GLM_Minimum_Flash_Area_w5u1
- GLM_Total_Optical_Energy_tile
- GLM_Total_Optical_Energy_w5u1_tile
- IceAge3
- IceAge8
- IceConc
- IceMask
- IceTemp
- IceThickness
- KI
- LI
- LST
- RRQPE
- SI
- SST
- SSTF
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- WMESO-1
- ACTP
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- KI
- LI
- LST
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- WMESO-2
- ACTP
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- KI
- LI
- LST
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
GEOCOLR
- ECONUS
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- WCONUS
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
GOES-16
- ECONUS
- ACTP
- AOD
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- COD
- CSM
- CTH
- CTP
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- Fog_Depth
- IFR_Fog_Prob
- KI
- LI
- LIFR_Fog_Prob
- LST
- MVFR_Fog_Prob
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- VMP-1014.00hPa
- VMP-103.00hPa
- VMP-151.30hPa
- VMP-20.92hPa
- VMP-201.00hPa
- VMP-247.40hPa
- VMP-29.12hPa
- VMP-300.00hPa
- VMP-359.00hPa
- VMP-407.50hPa
- VMP-459.70hPa
- VMP-496.60hPa
- VMP-51.53hPa
- VMP-535.20hPa
- VMP-555.20hPa
- VMP-575.50hPa
- VMP-596.30hPa
- VMP-617.50hPa
- VMP-661.20hPa
- VMP-683.70hPa
- VMP-706.60hPa
- VMP-71.50hPa
- VMP-729.90hPa
- VMP-753.60hPa
- VMP-777.80hPa
- VMP-802.40hPa
- VMP-827.40hPa
- VMP-852.80hPa
- VMP-878.60hPa
- VMP-9.51hPa
- VMP-904.90hPa
- VMP-931.50hPa
- VMP-958.60hPa
- VMP-986.10hPa
- VTP-1014.00hPa
- VTP-103.00hPa
- VTP-151.30hPa
- VTP-20.92hPa
- VTP-201.00hPa
- VTP-247.40hPa
- VTP-29.12hPa
- VTP-300.00hPa
- VTP-359.00hPa
- VTP-407.50hPa
- VTP-459.70hPa
- VTP-496.60hPa
- VTP-51.53hPa
- VTP-535.20hPa
- VTP-555.20hPa
- VTP-575.50hPa
- VTP-596.30hPa
- VTP-617.50hPa
- VTP-661.20hPa
- VTP-683.70hPa
- VTP-706.60hPa
- VTP-71.50hPa
- VTP-729.90hPa
- VTP-753.60hPa
- VTP-777.80hPa
- VTP-802.40hPa
- VTP-827.40hPa
- VTP-852.80hPa
- VTP-878.60hPa
- VTP-9.51hPa
- VTP-904.90hPa
- VTP-931.50hPa
- VTP-958.60hPa
- VTP-986.10hPa
- EFD
- ACTP
- AOD
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- COD
- CSM
- CTH
- CTP
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- FSC
- Fire_Mask
- GLM_Flash_Extent_Density
- GLM_Flash_Extent_Density_w5u1
- GLM_Minimum_Flash_Area
- GLM_Minimum_Flash_Area_w5u1
- GLM_Total_Optical_Energy_tile
- GLM_Total_Optical_Energy_w5u1_tile
- IceAge3
- IceAge8
- IceConc
- IceMask
- IceTemp
- IceThickness
- KI
- LI
- LST
- RRQPE
- SI
- SST
- SSTF
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- EMESO-1
- ACTP
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- KI
- LI
- LST
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- EMESO-2
- ACTP
- CAPE
- CF1
- CF2
- CF3
- CF4
- CF5
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-11-8.50um
- CH-12-9.61um
- CH-13-10.35um
- CH-14-11.20um
- CH-15-12.30um
- CH-16-13.30um
- CL
- CSM
- CTH
- CTT
- DustHigh
- DustLow
- DustMed
- FDC Area
- FDC Power
- FDC Temp
- Fire_Mask
- KI
- LI
- LST
- SI
- SmokeHigh
- SmokeLow
- SmokeMed
- TCF
- TPW
- TT
- PRREGI
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- CH-04-1.38um
- CH-05-1.61um
- CH-06-2.25um
- CH-07-3.90um
- CH-08-6.19um
- CH-09-6.95um
- CH-10-7.34um
- CH-13-10.35um
- CH-15-12.30um
NEXRCOMP
- NEXRCOMP
- DHR
- DVL
- EET
- HHC
- N1P
- NTP
UNIWISC
- AREA0600
- Imager 6.7-6.5 micron IR (WV)
- AREA0700
- Imager 11 micron IR
- AREA3100
- Imager 11 micron IR
- AREA3101
- Imager 6.7-6.5 micron IR (WV)
- Antarctic
- Imager 11 micron IR
- Imager 12 micron IR
- Imager 3.5-4.0 micron IR (Fog)
- Imager 6.7-6.5 micron IR (WV)
- Imager Visible
- Arctic
- Imager 11 micron IR
- Imager 12 micron IR
- Imager 3.5-4.0 micron IR (Fog)
- Imager 6.7-6.5 micron IR (WV)
- Imager Visible
CLDSNOW
- ECONUS
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
- WCONUS
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
DBRDUST
- ECONUS
- CH-01-0.47um
- CH-02-0.64um
- CH-03-0.87um
Top
--------------
5 Render GOES East Mesoscale Sectors
------------------------------------
Create specific requests defining the datatype, sector, and parameter.
Use the data returned to create plots and print out useful information
about the data (metadata).
.. code:: ipython3
# Define the sectors we want to plot -- here let's use GOES-East mesoscales
sectors = ["EMESO-1","EMESO-2"]
# For each sector render our plot
for i, sector in enumerate(sectors):
# Create a new request specfically for this data
request = DataAccessLayer.newDataRequest()
request.setDatatype("satellite")
request.setLocationNames(sector)
# Use Channel 13 as the data we want to render
request.setParameters("CH-13-10.35um")
# Filter results by time
utc = datetime.now(UTC)
times = DataAccessLayer.getAvailableTimes(request)
sTime = datetime.strptime(str(times[-1]),'%Y-%m-%d %H:%M:%S')
sTime = sTime.replace(tzinfo=tz('UTC'))
hourdiff = utc - sTime
hours,days = hourdiff.seconds/3600,hourdiff.days
minute = str((hourdiff.seconds - (3600 * hours)) / 60)
offsetStr = ''
if hours > 0:
offsetStr += str(hours) + "hr "
offsetStr += str(minute) + "m ago"
if days > 1:
offsetStr = str(days) + " days ago"
response = DataAccessLayer.getGridData(request, [times[-1]])
grid = response[0]
data = grid.getRawData()
# Define the bounding box for the plot
lons,lats = grid.getLatLonCoords()
bbox = [lons.min(), lons.max(), lats.min(), lats.max()]
# Print out the time of the image we're using and where the data is
print("Latest image available: "+str(times[-1]) + " ("+offsetStr+")")
print("Image grid size: " + str(data.shape))
print("Image grid extent: " + str(list(bbox)))
# Create the new plots
fig, ax = make_map(bbox=bbox)
states = cfeat.NaturalEarthFeature(category='cultural',
name='admin_1_states_provinces_lines',
scale='50m', facecolor='none')
ax.add_feature(states, linestyle=':')
cs = ax.pcolormesh(lons, lats, data, cmap='coolwarm')
cbar = fig.colorbar(cs, shrink=0.6, orientation='horizontal')
# Set the colorbar label
cbar.set_label(sector + " " + grid.getParameter() + " " \
+ str(grid.getDataTime().getRefTime()))
.. parsed-literal::
Latest image available: 2024-01-30 21:20:28 (0.018333333333333333hr 0.0m ago)
Image grid size: (500, 500)
Image grid extent: [-81.83639, -68.16361, 32.285526, 45.709965]
Latest image available: 2024-01-30 21:20:55 (0.011666666666666667hr 0.0m ago)
Image grid size: (500, 500)
Image grid extent: [-95.20762, -80.19988, 30.912949, 44.27834]
.. image:: Satellite_Imagery_files/Satellite_Imagery_26_1.png
.. image:: Satellite_Imagery_files/Satellite_Imagery_26_2.png
`Top <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html>`__
--------------
6 See Also
----------
6.1 Related Notebooks
~~~~~~~~~~~~~~~~~~~~~
- `GOES CIRA Product
Writer <http://unidata.github.io/python-awips/examples/generated/GOES_CIRA_Product_Writer.html>`__
6.2 Additional Documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
**python-awips**
- `DataAccessLayer.changeEDEXHost() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.changeEDEXHost>`__
- `DataAccessLayer.newDataRequest() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.newDataRequest>`__
- `DataAccessLayer.getAvailableLocationNames() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getAvailableLocationNames>`__
- `DataAccessLayer.getOptionalIdentifiers() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getOptionalIdentifiers>`__
- `DataAccessLayer.getIdentifierValues() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getIdentifierValues>`__
- `DataAccessLayer.getAvailableTimes() <http://unidata.github.io/python-awips/api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getAvailableTimes>`__
- `IDataRequest <http://unidata.github.io/python-awips/api/IDataRequest.html>`__
**matplotlib**
- `matplotlib.pyplot() <https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.html>`__
- `matplotlib.pyplot.axes() <https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.axes.html>`__
- `matplotlib.pyplot.figure() <https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.figure.html>`__
`Top <https://unidata.github.io/python-awips/examples/generated/Satellite_Imagery.html>`__
--------------