python-awips/examples/notebooks/Grid_Levels_and_Parameters.ipynb
Shay Carter fb74257311 Small change to Grid Levels and Params notebook:
- this should get changed again later today, hopefully!  But in case it doesnt, at the very least make this small change to remove the plotting portion at the end of the notebook.
2021-06-01 10:32:43 -06:00

902 lines
21 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This example covers the callable methods of python-awips when working with gridded data. We start with a connection to an EDEX server, then query data types, then grid names, parameters, levels, and other information. Finally the gridded data is plotted for its domain using Matplotlib and Cartopy."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getSupportedDatatypes()\n",
"\n",
"getSupportedDatatypes() returns a list of available data types offered by the EDEX server defined above. "
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['acars',\n",
" 'airep',\n",
" 'binlightning',\n",
" 'bufrmosAVN',\n",
" 'bufrmosETA',\n",
" 'bufrmosGFS',\n",
" 'bufrmosHPC',\n",
" 'bufrmosLAMP',\n",
" 'bufrmosMRF',\n",
" 'bufrua',\n",
" 'climate',\n",
" 'common_obs_spatial',\n",
" 'gfe',\n",
" 'gfeEditArea',\n",
" 'grid',\n",
" 'maps',\n",
" 'modelsounding',\n",
" 'obs',\n",
" 'pirep',\n",
" 'practicewarning',\n",
" 'profiler',\n",
" 'radar',\n",
" 'radar_spatial',\n",
" 'satellite',\n",
" 'sfcobs',\n",
" 'topo',\n",
" 'warning']"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from awips.dataaccess import DataAccessLayer\n",
"import unittest\n",
"\n",
"DataAccessLayer.changeEDEXHost(\"edex-cloud.unidata.ucar.edu\")\n",
"dataTypes = DataAccessLayer.getSupportedDatatypes()\n",
"dataTypes.sort()\n",
"list(dataTypes)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getAvailableLocationNames()\n",
"\n",
"Now create a new data request, and set the data type to **grid** to request all available grids with **getAvailableLocationNames()**"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['AUTOSPE',\n",
" 'CMC',\n",
" 'ESTOFS',\n",
" 'ETSS',\n",
" 'FFG-ALR',\n",
" 'FFG-FWR',\n",
" 'FFG-KRF',\n",
" 'FFG-MSR',\n",
" 'FFG-ORN',\n",
" 'FFG-PTR',\n",
" 'FFG-RHA',\n",
" 'FFG-RSA',\n",
" 'FFG-STR',\n",
" 'FFG-TAR',\n",
" 'FFG-TIR',\n",
" 'FFG-TUA',\n",
" 'GEFS',\n",
" 'GFS',\n",
" 'GFS20',\n",
" 'HFR-EAST_6KM',\n",
" 'HFR-EAST_PR_6KM',\n",
" 'HFR-US_EAST_DELAWARE_1KM',\n",
" 'HFR-US_EAST_FLORIDA_2KM',\n",
" 'HFR-US_EAST_NORTH_2KM',\n",
" 'HFR-US_EAST_SOUTH_2KM',\n",
" 'HFR-US_EAST_VIRGINIA_1KM',\n",
" 'HFR-US_HAWAII_1KM',\n",
" 'HFR-US_HAWAII_2KM',\n",
" 'HFR-US_HAWAII_6KM',\n",
" 'HFR-US_WEST_500M',\n",
" 'HFR-US_WEST_CENCAL_2KM',\n",
" 'HFR-US_WEST_LOSANGELES_1KM',\n",
" 'HFR-US_WEST_LOSOSOS_1KM',\n",
" 'HFR-US_WEST_NORTH_2KM',\n",
" 'HFR-US_WEST_SANFRAN_1KM',\n",
" 'HFR-US_WEST_SOCAL_2KM',\n",
" 'HFR-US_WEST_WASHINGTON_1KM',\n",
" 'HFR-WEST_6KM',\n",
" 'HPCGuide',\n",
" 'HPCqpfNDFD',\n",
" 'HRRR',\n",
" 'LAMP2p5',\n",
" 'MRMS_0500',\n",
" 'MRMS_1000',\n",
" 'NAM12',\n",
" 'NAM40',\n",
" 'NOHRSC-SNOW',\n",
" 'NationalBlend',\n",
" 'RAP13',\n",
" 'RTMA',\n",
" 'RTOFS-Now-WestAtl',\n",
" 'RTOFS-Now-WestConus',\n",
" 'RTOFS-WestAtl',\n",
" 'RTOFS-WestConus',\n",
" 'SPCGuide',\n",
" 'SeaIce',\n",
" 'TPCWindProb',\n",
" 'URMA25',\n",
" 'WaveWatch']"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"request = DataAccessLayer.newDataRequest()\n",
"request.setDatatype(\"grid\")\n",
"available_grids = DataAccessLayer.getAvailableLocationNames(request)\n",
"available_grids.sort()\n",
"list(available_grids)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getAvailableParameters()\n",
"\n",
"After datatype and model name (locationName) are set, you can query all available parameters with **getAvailableParameters()**"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['36SHRMi',\n",
" '50dbzZ',\n",
" 'AV',\n",
" 'Along',\n",
" 'AppT',\n",
" 'BLI',\n",
" 'BRN',\n",
" 'BRNEHIi',\n",
" 'BRNSHR',\n",
" 'BRNmag',\n",
" 'BRNvec',\n",
" 'BdEPT06',\n",
" 'BlkMag',\n",
" 'BlkShr',\n",
" 'CAPE',\n",
" 'CFRZR',\n",
" 'CICEP',\n",
" 'CIn',\n",
" 'CP',\n",
" 'CP1hr',\n",
" 'CPr',\n",
" 'CPrD',\n",
" 'CRAIN',\n",
" 'CSNOW',\n",
" 'CURU',\n",
" 'CXR',\n",
" 'CapeStk',\n",
" 'Corf',\n",
" 'CorfF',\n",
" 'CorfFM',\n",
" 'CorfM',\n",
" 'CritT1',\n",
" 'CumNrm',\n",
" 'CumShr',\n",
" 'DivF',\n",
" 'DivFn',\n",
" 'DivFs',\n",
" 'DpD',\n",
" 'DpT',\n",
" 'EHI',\n",
" 'EHI01',\n",
" 'EHIi',\n",
" 'EPT',\n",
" 'EPTA',\n",
" 'EPTC',\n",
" 'EPTGrd',\n",
" 'EPTGrdM',\n",
" 'EPTs',\n",
" 'EPVg',\n",
" 'EPVs',\n",
" 'EPVt1',\n",
" 'EPVt2',\n",
" 'ESP',\n",
" 'ESP2',\n",
" 'FVecs',\n",
" 'FeatMot',\n",
" 'FnVecs',\n",
" 'FsVecs',\n",
" 'Fzra1',\n",
" 'Fzra2',\n",
" 'GH',\n",
" 'GHxSM',\n",
" 'GHxSM2',\n",
" 'Gust',\n",
" 'HI',\n",
" 'HI1',\n",
" 'HI3',\n",
" 'HI4',\n",
" 'HIdx',\n",
" 'HPBL',\n",
" 'Heli',\n",
" 'HeliC',\n",
" 'INV',\n",
" 'IPLayer',\n",
" 'Into',\n",
" 'KI',\n",
" 'L-I',\n",
" 'LIsfc2x',\n",
" 'LM5',\n",
" 'LM6',\n",
" 'MAdv',\n",
" 'MCon',\n",
" 'MCon2',\n",
" 'MLLCL',\n",
" 'MMP',\n",
" 'MMSP',\n",
" 'MSFDi',\n",
" 'MSFi',\n",
" 'MSFmi',\n",
" 'MSG',\n",
" 'MTV',\n",
" 'Mix1',\n",
" 'Mix2',\n",
" 'Mmag',\n",
" 'MpV',\n",
" 'NBE',\n",
" 'NST',\n",
" 'NST1',\n",
" 'NST2',\n",
" 'OmDiff',\n",
" 'P',\n",
" 'PAdv',\n",
" 'PBE',\n",
" 'PEC',\n",
" 'PFrnt',\n",
" 'PGrd',\n",
" 'PGrd1',\n",
" 'PGrdM',\n",
" 'PIVA',\n",
" 'PR',\n",
" 'PTvA',\n",
" 'PTyp',\n",
" 'PVV',\n",
" 'PW',\n",
" 'PW2',\n",
" 'PoT',\n",
" 'PoTA',\n",
" 'QPV1',\n",
" 'QPV2',\n",
" 'QPV3',\n",
" 'QPV4',\n",
" 'REFC',\n",
" 'RH',\n",
" 'RH_001_bin',\n",
" 'RH_002_bin',\n",
" 'RM5',\n",
" 'RM6',\n",
" 'RMprop',\n",
" 'RMprop2',\n",
" 'RRtype',\n",
" 'RV',\n",
" 'Rain1',\n",
" 'Rain2',\n",
" 'Rain3',\n",
" 'Ro',\n",
" 'SH',\n",
" 'SHx',\n",
" 'SLI',\n",
" 'SNSQ',\n",
" 'SNW',\n",
" 'SNWA',\n",
" 'SRMl',\n",
" 'SRMlM',\n",
" 'SRMm',\n",
" 'SRMmM',\n",
" 'SRMr',\n",
" 'SRMrM',\n",
" 'SSP',\n",
" 'SSi',\n",
" 'STP',\n",
" 'STP1',\n",
" 'Shear',\n",
" 'ShrMag',\n",
" 'SnD',\n",
" 'Snow1',\n",
" 'Snow2',\n",
" 'Snow3',\n",
" 'SnowT',\n",
" 'St-Pr',\n",
" 'StrTP',\n",
" 'StrmMot',\n",
" 'SuCP',\n",
" 'T',\n",
" 'TAdv',\n",
" 'TGrd',\n",
" 'TGrdM',\n",
" 'TORi',\n",
" 'TORi2',\n",
" 'TP',\n",
" 'TP1hr',\n",
" 'TQIND',\n",
" 'TShrMi',\n",
" 'TV',\n",
" 'TW',\n",
" 'T_001_bin',\n",
" 'Tdef',\n",
" 'Tdend',\n",
" 'ThGrd',\n",
" 'Thom5',\n",
" 'Thom5a',\n",
" 'Thom6',\n",
" 'TmDpD',\n",
" 'Tmax',\n",
" 'Tmin',\n",
" 'Topo',\n",
" 'TotQi',\n",
" 'Tstk',\n",
" 'TwMax',\n",
" 'TwMin',\n",
" 'Twstk',\n",
" 'TxSM',\n",
" 'USTM',\n",
" 'VAdv',\n",
" 'VAdvAdvection',\n",
" 'VGP',\n",
" 'VSTM',\n",
" 'Vis',\n",
" 'WCD',\n",
" 'WD',\n",
" 'WEASD',\n",
" 'WEASD1hr',\n",
" 'WGS',\n",
" 'Wind',\n",
" 'WndChl',\n",
" 'ageoVC',\n",
" 'ageoW',\n",
" 'ageoWM',\n",
" 'cCape',\n",
" 'cCin',\n",
" 'cTOT',\n",
" 'capeToLvl',\n",
" 'dCape',\n",
" 'dP',\n",
" 'dT',\n",
" 'dVAdv',\n",
" 'dZ',\n",
" 'defV',\n",
" 'del2gH',\n",
" 'df',\n",
" 'fGen',\n",
" 'fnD',\n",
" 'fsD',\n",
" 'gamma',\n",
" 'gammaE',\n",
" 'geoVort',\n",
" 'geoW',\n",
" 'geoWM',\n",
" 'loCape',\n",
" 'maxEPT',\n",
" 'minEPT',\n",
" 'mixRat',\n",
" 'msl-P',\n",
" 'muCape',\n",
" 'pV',\n",
" 'pVeq',\n",
" 'qDiv',\n",
" 'qVec',\n",
" 'qnVec',\n",
" 'qsVec',\n",
" 'shWlt',\n",
" 'snoRat',\n",
" 'snoRatCrocus',\n",
" 'snoRatEMCSREF',\n",
" 'snoRatOv2',\n",
" 'snoRatSPC',\n",
" 'snoRatSPCdeep',\n",
" 'snoRatSPCsurface',\n",
" 'staticCoriolis',\n",
" 'staticSpacing',\n",
" 'staticTopo',\n",
" 'swtIdx',\n",
" 'tTOT',\n",
" 'tWind',\n",
" 'tWindU',\n",
" 'tWindV',\n",
" 'uFX',\n",
" 'uW',\n",
" 'uWStk',\n",
" 'ulSnoRat',\n",
" 'vSmthW',\n",
" 'vTOT',\n",
" 'vW',\n",
" 'vWStk',\n",
" 'vertCirc',\n",
" 'wDiv',\n",
" 'wSp',\n",
" 'wSp_001_bin',\n",
" 'wSp_002_bin',\n",
" 'wSp_003_bin',\n",
" 'wSp_004_bin',\n",
" 'zAGL']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"request.setLocationNames(\"RAP13\")\n",
"availableParms = DataAccessLayer.getAvailableParameters(request)\n",
"availableParms.sort()\n",
"list(availableParms)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getAvailableLevels()\n",
"\n",
"Selecting **\"T\"** for temperature."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0SFC\n",
"350.0MB\n",
"475.0MB\n",
"610.0_40000.0FHAG\n",
"225.0MB\n",
"120.0_150.0BL\n",
"900.0MB\n",
"125.0MB\n",
"0.0_610.0FHAG\n",
"450.0MB\n",
"575.0MB\n",
"325.0MB\n",
"100.0MB\n",
"1000.0MB\n",
"60.0_90.0BL\n",
"275.0MB\n",
"1.0PV\n",
"950.0MB\n",
"150.0MB\n",
"1.5PV\n",
"700.0MB\n",
"825.0MB\n",
"150.0_180.0BL\n",
"250.0MB\n",
"375.0MB\n",
"1000.0_500.0MB\n",
"800.0MB\n",
"4000.0FHAG\n",
"925.0MB\n",
"2.0PV\n",
"0.5PV\n",
"0.0TROP\n",
"750.0MB\n",
"500.0MB\n",
"625.0MB\n",
"400.0MB\n",
"0.0FHAG\n",
"2.0FHAG\n",
"875.0MB\n",
"175.0MB\n",
"0.0_1000.0FHAG\n",
"850.0MB\n",
"600.0MB\n",
"725.0MB\n",
"0.0_6000.0FHAG\n",
"975.0MB\n",
"550.0MB\n",
"0.0_3000.0FHAG\n",
"675.0MB\n",
"425.0MB\n",
"200.0MB\n",
"0.0_30.0BL\n",
"30.0_60.0BL\n",
"650.0MB\n",
"525.0MB\n",
"300.0MB\n",
"90.0_120.0BL\n",
"1000.0FHAG\n",
"775.0MB\n",
"340.0_350.0K\n",
"290.0_300.0K\n",
"700.0_600.0MB\n",
"700.0_300.0MB\n",
"320.0Ke\n",
"800.0_750.0MB\n",
"60.0TILT\n",
"5.3TILT\n",
"1000.0_900.0MB\n",
"340.0K\n",
"5500.0_6000.0FHAG\n",
"255.0K\n",
"255.0_265.0K\n",
"3000.0_6000.0FHAG\n",
"25.0TILT\n",
"2000.0FHAG\n",
"0.0_500.0FHAG\n",
"1000.0_850.0MB\n",
"850.0_250.0MB\n",
"280.0_290.0Ke\n",
"1524.0FHAG\n",
"320.0_330.0K\n",
"0.0TILT\n",
"310.0_320.0Ke\n",
"310.0Ke\n",
"330.0K\n",
"900.0_800.0MB\n",
"550.0_500.0MB\n",
"2.4TILT\n",
"50.0TILT\n",
"3500.0FHAG\n",
"35.0TILT\n",
"12.0TILT\n",
"300.0_310.0K\n",
"3000.0_12000.0FHAG\n",
"0.9TILT\n",
"320.0K\n",
"400.0_350.0MB\n",
"500.0FHAG\n",
"750.0_700.0MB\n",
"1000.0_400.0MB\n",
"345.0K\n",
"250.0_260.0K\n",
"300.0Ke\n",
"290.0Ke\n",
"950.0_900.0MB\n",
"4572.0FHAG\n",
"275.0_285.0Ke\n",
"335.0Ke\n",
"295.0_305.0Ke\n",
"275.0_285.0K\n",
"600.0_550.0MB\n",
"310.0K\n",
"9000.0FHAG\n",
"335.0K\n",
"1000.0_7000.0FHAG\n",
"700.0_500.0MB\n",
"9144.0FHAG\n",
"325.0_335.0K\n",
"2000.0_8000.0FHAG\n",
"0.0_609.6FHAG\n",
"300.0K\n",
"0.0MAXOMEGA\n",
"315.0_325.0K\n",
"325.0K\n",
"340.0Ke\n",
"0.0_4000.0FHAG\n",
"5000.0_5500.0FHAG\n",
"300.0_250.0MB\n",
"1.5TILT\n",
"335.0_345.0K\n",
"315.0K\n",
"3.4TILT\n",
"2500.0FHAG\n",
"10000.0FHAG\n",
"0.0_2000.0FHAG\n",
"7000.0FHAG\n",
"5000.0FHAG\n",
"330.0Ke\n",
"500.0_400.0MB\n",
"1000.0_1500.0FHAG\n",
"305.0K\n",
"285.0_295.0Ke\n",
"14.0TILT\n",
"3000.0_3500.0FHAG\n",
"325.0_335.0Ke\n",
"2000.0_5000.0FHAG\n",
"7620.0FHAG\n",
"850.0_800.0MB\n",
"6096.0FHAG\n",
"6000.0_7000.0FHAG\n",
"2000.0_7000.0FHAG\n",
"9000.0_10000.0FHAG\n",
"295.0Ke\n",
"305.0Ke\n",
"265.0_275.0K\n",
"7000.0_8000.0FHAG\n",
"3000.0_8000.0FHAG\n",
"700.0_650.0MB\n",
"1000.0_6000.0FHAG\n",
"0.5TILT\n",
"450.0_400.0MB\n",
"1.8TILT\n",
"330.0_340.0K\n",
"800.0_700.0MB\n",
"850.0_300.0MB\n",
"6.0TILT\n",
"900.0_850.0MB\n",
"3657.6FHAG\n",
"0.0_5000.0FHAG\n",
"320.0_330.0Ke\n",
"8.7TILT\n",
"650.0_600.0MB\n",
"600.0_400.0MB\n",
"55.0TILT\n",
"270.0_280.0Ke\n",
"30.0TILT\n",
"310.0_320.0K\n",
"1500.0FHAG\n",
"1000.0_950.0MB\n",
"5500.0FHAG\n",
"250.0_200.0MB\n",
"500.0_1000.0FHAG\n",
"400.0_300.0MB\n",
"500.0_100.0MB\n",
"1000.0_3000.0FHAG\n",
"8000.0FHAG\n",
"285.0Ke\n",
"290.0K\n",
"305.0_315.0K\n",
"285.0_295.0K\n",
"0.0_2500.0FHAG\n",
"925.0_850.0MB\n",
"275.0Ke\n",
"1500.0_2000.0FHAG\n",
"300.0_200.0MB\n",
"260.0_270.0K\n",
"2743.2FHAG\n",
"3000.0FHAG\n",
"315.0_325.0Ke\n",
"600.0_500.0MB\n",
"16.7TILT\n",
"280.0K\n",
"500.0_250.0MB\n",
"40.0TILT\n",
"3048.0FHAG\n",
"400.0_200.0MB\n",
"300.0_310.0Ke\n",
"270.0_280.0K\n",
"1000.0_700.0MB\n",
"45.0TILT\n",
"850.0_500.0MB\n",
"2500.0_3000.0FHAG\n",
"609.6FHAG\n",
"0.0_8000.0FHAG\n",
"295.0K\n",
"4.3TILT\n",
"295.0_305.0K\n",
"330.0_340.0Ke\n",
"270.0K\n",
"4000.0_4500.0FHAG\n",
"280.0_290.0K\n",
"925.0_700.0MB\n",
"0.0_1500.0FHAG\n",
"260.0K\n",
"10.0TILT\n",
"3500.0_4000.0FHAG\n",
"325.0Ke\n",
"285.0K\n",
"290.0_300.0Ke\n",
"7.5TILT\n",
"1828.8FHAG\n",
"280.0Ke\n",
"500.0_450.0MB\n",
"305.0_315.0Ke\n",
"250.0K\n",
"4500.0FHAG\n",
"1250.0FHAG\n",
"0.0_10000.0FHAG\n",
"4500.0_5000.0FHAG\n",
"250.0_350.0K\n",
"270.0Ke\n",
"275.0K\n",
"315.0Ke\n",
"500.0_300.0MB\n",
"350.0_300.0MB\n",
"750.0FHAG\n",
"19.5TILT\n",
"2000.0_2500.0FHAG\n",
"850.0_700.0MB\n",
"350.0K\n",
"265.0K\n",
"6000.0FHAG\n",
"8000.0_9000.0FHAG\n",
"700.0_300.0LYRMB\n",
"850.0_700.0LYRMB\n"
]
}
],
"source": [
"request.setParameters(\"T\")\n",
"availableLevels = DataAccessLayer.getAvailableLevels(request)\n",
"for lvl in availableLevels:\n",
" print(lvl)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"* **0.0SFC** is the Surface level\n",
"* **FHAG** stands for Fixed Height Above Ground (in meters)\n",
"* **NTAT** stands for Nominal Top of the ATmosphere\n",
"* **BL** stands for Boundary Layer, where **0.0_30.0BL** reads as *0-30 mb above ground level* \n",
"* **TROP** is the Tropopause level\n",
"\n",
"**request.setLevels()**\n",
"\n",
"For this example we will use Surface Temperature"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"request.setLevels(\"2.0FHAG\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getAvailableTimes()\n",
"\n",
"* **getAvailableTimes(request, True)** will return an object of *run times* - formatted as `YYYY-MM-DD HH:MM:SS`\n",
"* **getAvailableTimes(request)** will return an object of all times - formatted as `YYYY-MM-DD HH:MM:SS (F:ff)`\n",
"* **getForecastRun(cycle, times)** will return a DataTime array for a single forecast cycle."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >,\n",
" <DataTime instance: 2020-09-04 18:00:00 >]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"cycles = DataAccessLayer.getAvailableTimes(request, True)\n",
"times = DataAccessLayer.getAvailableTimes(request)\n",
"fcstRun = DataAccessLayer.getForecastRun(cycles[-1], times)\n",
"list(fcstRun)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## DataAccessLayer.getGridData()\n",
"\n",
"Now that we have our `request` and DataTime `fcstRun` arrays ready, it's time to request the data array from EDEX."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Time : 2020-09-04 18:00:00\n",
"Model: RAP13\n",
"Parm : T\n",
"Unit : K\n",
"(337, 451)\n"
]
}
],
"source": [
"response = DataAccessLayer.getGridData(request, [fcstRun[-1]])\n",
"for grid in response:\n",
" data = grid.getRawData()\n",
" lons, lats = grid.getLatLonCoords()\n",
" print('Time :', str(grid.getDataTime()))\n",
"\n",
"print('Model:', str(grid.getLocationName()))\n",
"print('Parm :', str(grid.getParameter()))\n",
"print('Unit :', str(grid.getUnit()))\n",
"print(data.shape)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.2"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}