iem icon indicating copy to clipboard operation
iem copied to clipboard

Additional Sounding/RAOB JSON endpoints

Open akrherz opened this issue 7 years ago • 5 comments

Currently, we have /json/raob.py?station=XXXX&ts=YYYYMMDDHH24MI JSON service that emits a profile for a given station and time (why didn't I do ISO timestamps, sigh). Lets implement some more.

  • [x] if no station is specified, return all profiles for a given timestamp
  • [x] allow ISO date format in the current service, but not break previous clients /json/raob.py?station=XXXX&ts=YYYY-MM-DDTHH24:MMZ
  • [ ] Lists available soundings for a given station and UTC date /json/raob.py?metadata&station=XXXX&date=YYYY-MM-DD
  • [ ] Lists available soundings (station, name, lat, lon) for a given UTC date /json/raob.py?metadata&date=YYYY-MM-DD
  • [ ] List available soundings for a single UTC timestamp /json.raob.py?metadata&ts=YYYY-MM-DDTHH24:MMZ
  • [ ] Lists available soundings for a given station and time range, start inclusive, end exclusive, perhaps limited to 365 days between start and end time /json/raob.py?metadata&station=XXXX&start=YYYY-MM-DDTHH24:MMZ&end=YYYY-MM-DDTHH24:MMZ
  • [ ] Support fetching based on the "threaded" stations nomenclature the IEM uses to merge nearby sites into a single ID, ie _OAX. These IDs would not be used in the metadata calls.

Currently, the service returns a JSON object like so:

{"profiles": [{"station": "", "valid": "", "profile": []}]
}

So lets extend the above and in the case of metadata requests, not include the profile:[]

{"profiles": [{"station": "", "valid": "", "name": "", 
                   "latitude": 99.99, "longitude": 99.99, "profile_href": "/uri-fordata"}]
}

akrherz avatar Jun 06 '17 15:06 akrherz

How difficult would it be to allow for multiple simultaneous station requests?

jthielen avatar Jun 26 '18 20:06 jthielen

Hi @jthielen it is probably more a matter of being practical than difficult. Are you hoping to get all stations for a given time or period of time?

akrherz avatar Jun 26 '18 20:06 akrherz

Indeed, what I've been looking to do is request all stations at a given time, in order to make an upper air chart example with siphon/metpy.

jthielen avatar Jun 26 '18 20:06 jthielen

@jthielen you can now make a request http://mesonet.agron.iastate.edu/json/raob.py?ts=2018-06-26T12:00:00Z&pressure=500 to get all my 500 hPa values for a given timestamp. Dropping the pressure parameter yields all profiles for all stations :)

akrherz avatar Jun 26 '18 20:06 akrherz

Very nice! Thank you for helping with this so quickly!

jthielen avatar Jun 26 '18 20:06 jthielen