mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-24 06:57:56 -05:00
122 lines
3.9 KiB
ReStructuredText
122 lines
3.9 KiB
ReStructuredText
====================
|
|
Available Data Types
|
|
====================
|
|
|
|
.. _awips.dataaccess.DataAccessLayer.getGeometryData(request, times=[]): api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getGeometryData
|
|
|
|
.. _awips.dataaccess.DataAccessLayer.getGridData(request, times=[]): api/DataAccessLayer.html#awips.dataaccess.DataAccessLayer.getGridData
|
|
|
|
.. _RadarCommon.get_hdf5_data(idra): api/RadarCommon.html
|
|
|
|
|
|
|
|
binlightning
|
|
------------
|
|
|
|
- Shapely Point::
|
|
|
|
POINT (-65.65293884277344 -16.94915580749512)
|
|
|
|
- returned by `awips.dataaccess.DataAccessLayer.getGeometryData(request, times=[])`_
|
|
- example (GLM)::
|
|
|
|
request = DataAccessLayer.newDataRequest()
|
|
request.setDatatype("binlightning")
|
|
request.addIdentifier("source", "GLMgr")
|
|
request.setParameters("intensity")
|
|
times = DataAccessLayer.getAvailableTimes(request)
|
|
response = DataAccessLayer.getGeometryData(request, times[-10:-1])
|
|
for ob in response:
|
|
dir(ob.getGeometry())
|
|
|
|
|
|
------------------
|
|
|
|
|
|
grid
|
|
----
|
|
|
|
- NumPy Array
|
|
- returned by: `awips.dataaccess.DataAccessLayer.getGridData(request, times=[])`_
|
|
- example::
|
|
|
|
request = DataAccessLayer.newDataRequest()
|
|
request.setDatatype("grid")
|
|
request.setLocationNames("RAP13")
|
|
request.setParameters("T")
|
|
request.setLevels("2.0FHAG")
|
|
cycles = DataAccessLayer.getAvailableTimes(request, True)
|
|
times = DataAccessLayer.getAvailableTimes(request)
|
|
fcstRun = DataAccessLayer.getForecastRun(cycles[-1], times)
|
|
response = DataAccessLayer.getGridData(request, [fcstRun[-1]])
|
|
for grid in response:
|
|
data = grid.getRawData()
|
|
lons, lats = grid.getLatLonCoords()
|
|
|
|
|
|
------------------
|
|
|
|
warning
|
|
-------
|
|
|
|
- Shapely MultiPolygon, Polygon::
|
|
|
|
MULTIPOLYGON ((-92.092348410 46.782322971, ..., -92.092348410 46.782322971),
|
|
(-90.948581075 46.992865960, ..., -90.948581075 46.992865960),
|
|
...
|
|
(-92.274543999 46.652773000, ..., -92.280511999 46.656933000),
|
|
(-92.285491999 46.660741000, ..., -92.285491999 46.660741000))
|
|
|
|
- returned by `awips.dataaccess.DataAccessLayer.getGeometryData(request, times=[])`_
|
|
- example::
|
|
|
|
request = DataAccessLayer.newDataRequest()
|
|
request.setDatatype("warning")
|
|
request.setParameters('phensig')
|
|
times = DataAccessLayer.getAvailableTimes(request)
|
|
response = DataAccessLayer.getGeometryData(request, times[-50:-1])
|
|
for ob in response:
|
|
poly = ob.getGeometry()
|
|
site = ob.getLocationName()
|
|
pd = ob.getDataTime().getValidPeriod()
|
|
ref = ob.getDataTime().getRefTime()
|
|
|
|
|
|
------------------
|
|
|
|
radar
|
|
-----
|
|
|
|
- NumPy Array
|
|
- returned by: `RadarCommon.get_hdf5_data(idra)`_
|
|
- example::
|
|
|
|
request = DataAccessLayer.newDataRequest()
|
|
request.setDatatype("radar")
|
|
request.setLocationNames("klzk")
|
|
# Get latest time for site
|
|
datatimes = DataAccessLayer.getAvailableTimes(request)
|
|
dateTimeStr = str(datatimes[-1])
|
|
#dateTimeStr = "2017-02-02 03:53:03"
|
|
buffer = 60 # seconds
|
|
dateTime = datetime.strptime(dateTimeStr, '%Y-%m-%d %H:%M:%S')
|
|
# Build timerange +/- buffer
|
|
beginRange = dateTime - timedelta(0, buffer)
|
|
endRange = dateTime + timedelta(0, buffer)
|
|
timerange = TimeRange(beginRange, endRange)
|
|
client = ThriftClient.ThriftClient("edex-cloud.unidata.ucar.edu")
|
|
request = GetRadarDataRecordRequest()
|
|
request.setTimeRange(timerange)
|
|
request.setRadarId("klzk")
|
|
request.setProductCode("94") # N0Q
|
|
request.setPrimaryElevationAngle("0.5")
|
|
response = client.sendRequest(request)
|
|
for record in response.getData():
|
|
# Get record hdf5 data
|
|
idra = record.getHdf5Data()
|
|
rdat,azdat,depVals,threshVals = RadarCommon.get_hdf5_data(idra)
|
|
dim = rdat.getDimension()
|
|
lat,lon = float(record.getLatitude()),float(record.getLongitude())
|
|
radials,rangeGates = rdat.getSizes()
|
|
# Convert raw byte to pixel value
|
|
rawValue=np.array(rdat.getByteData())
|