Skip to content
This repository has been archived by the owner on Jan 3, 2024. It is now read-only.

Add OceanWorks API's #119

Open
lewismc opened this issue Mar 14, 2018 · 8 comments
Open

Add OceanWorks API's #119

lewismc opened this issue Mar 14, 2018 · 8 comments
Assignees
Milestone

Comments

@lewismc
Copy link
Member

lewismc commented Mar 14, 2018

OceanWorks is a JPL project which provides a rich set of API's we can interact with. We should add this functionality for the next release.

@lewismc lewismc added this to the 2.2.0 milestone Mar 14, 2018
@lewismc lewismc self-assigned this Mar 14, 2018
@Omkar20895
Copy link
Collaborator

Omkar20895 commented Mar 15, 2018

@lewismc can I help on this improvement? Thanks

@lewismc
Copy link
Member Author

lewismc commented Mar 15, 2018 via email

@Omkar20895
Copy link
Collaborator

Hi @lewismc I have started working on the above. I just want to let you know the sub routine names:

subroutine1: get_dataset_list()
subroutine2: get_dataset_stats()
subroutine3: not sure what would be the appropriate sub routine name, open to suggestions.

subroutines = no.of end points.

Thanks.

@lewismc
Copy link
Member Author

lewismc commented Mar 22, 2018

Hi @fgreg can you list what you envisage a Python APi to look like for OceanWorks? I will deal with MUDROD, thank you for any input I really appreciate it.

@fgreg
Copy link

fgreg commented Mar 22, 2018

We have the start of a python client for NEXUS here: https://github.com/apache/incubator-sdap-nexus/tree/master/client

NEXUS is the service responsible for serving the endpoints currently described on https://oceanworks.jpl.nasa.gov/

So I'm not sure that you want to re-implement these things on your own or maybe just include the nexuscli as a dependency to this project?

nexuscli is still under development as well and it doesn't have all of the endpoints covered yet either, so if you want to contribute that would be appropriate.

@lewismc
Copy link
Member Author

lewismc commented Mar 22, 2018

Hi @fgreg thank you,

...or maybe just include the nexuscli as a dependency to this project?

That's exactly what I want to do.

nexuscli is still under development as well and it doesn't have all of the endpoints covered yet either, so if you want to contribute that would be appropriate.

Is there an open JIRA issue for adding then endpoints ? Thanks

@fgreg
Copy link

fgreg commented Mar 22, 2018

@lewismc No they haven't been opened yet. Here's one recently done by Nga though that could be used as an example: https://issues.apache.org/jira/projects/SDAP/issues/SDAP-47

@lewismc lewismc modified the milestones: 2.2.0, 2.4.0 Aug 7, 2019
@lewismc
Copy link
Member Author

lewismc commented Aug 21, 2019

I messed around a bit and found that this was much easier than I expected

from nexuscli import nexuscli
nexuscli.set_target("http://oceanworks.jpl.nasa.gov/")
...Target set to http://oceanworks.jpl.nasa.gov/
nexuscli.dataset_list()
[OrderedDict([('shortName', 'AQUARIUS_L3_SSS_v5_7day'), ('start', '1970-01-16T05:05:16Z'), ('end', '1970-01-17T14:05:16Z')]), OrderedDict([('shortName', 'ASCATB-L2-Coastal'), ('start', '1970-01-16T15:24:32Z'), ('end', '1970-01-18T11:13:27Z')]), OrderedDict([('shortName', 'AVHRR_OI_L4_GHRSST_NCEI'), ('start', '1970-01-05T06:15:50Z'), ('end', '1970-01-18T22:13:26Z')]), OrderedDict([('shortName', 'CCMP_V2.0_L3.0_WIND_SPEED'), ('start', '1970-01-07T09:34:33Z'), ('end', '1970-01-18T12:44:16Z')]), OrderedDict([('shortName', 'CCMP_V2.0_L3.0_WIND_SPEED_CLIM'), ('start', '1970-01-01T00:00:00Z'), ('end', '1970-01-01T00:00:00Z')]), OrderedDict([('shortName', 'G5NR_TOTEXTTAU_500'), ('start', '1970-01-14T09:24:28Z'), ('end', '1970-01-14T09:44:36Z')]), OrderedDict([('shortName', 'GPM_3IMERGHHE'), ('start', '1970-01-17T03:23:02Z'), ('end', '1970-01-18T21:30:56Z')]), OrderedDict([('shortName', 'MODIS_L3_sst_4km'), ('start', '1970-01-12T20:55:37Z'), ('end', '1970-01-18T22:13:26Z')]), OrderedDict([('shortName', 'MODIS_L3m_DAY_CHL_chlor_a_4km'), ('start', '1970-01-12T20:55:39Z'), ('end', '1970-01-18T22:25:00Z')]), OrderedDict([('shortName', 'MUR25-JPL-L4-GLOB-v4.1'), ('start', '1970-01-12T20:08:42Z'), ('end', '1970-01-18T21:30:46Z')]), OrderedDict([('shortName', 'MUR25-JPL-L4-GLOB-v4.1-CLIM'), ('start', '1970-01-01T00:00:00Z'), ('end', '1970-01-01T00:00:00Z')]), OrderedDict([('shortName', 'OSCAR_L4_OC'), ('start', '1970-01-09T07:54:57Z'), ('end', '1970-01-18T21:24:22Z')]), OrderedDict([('shortName', 'RAPID_WSWM'), ('start', '1970-01-10T20:41:38Z'), ('end', '1970-01-11T14:11:13Z')]), OrderedDict([('shortName', 'SMAP_L2B_SSS'), ('start', '1970-01-17T12:36:59Z'), ('end', '1970-01-18T01:19:10Z')]), OrderedDict([('shortName', 'SMAP_SSS_L3_MONTHLY_500'), ('start', '1970-01-17T12:59:02Z'), ('end', '1970-01-18T15:17:16Z')]), OrderedDict([('shortName', 'SMAP_SSS_L3_MONTHLY_500_CLIM'), ('start', '1970-01-01T00:00:00Z'), ('end', '1970-01-01T00:00:00Z')]), OrderedDict([('shortName', 'SMAP_SSS_L3_v3_8day_70km'), ('start', '1970-01-17T12:36:43Z'), ('end', '1970-01-18T22:04:04Z')]), OrderedDict([('shortName', 'SMAP_SSS_L3_v3_monthly_70km'), ('start', '1970-01-17T12:59:02Z'), ('end', '1970-01-18T21:09:21Z')]), OrderedDict([('shortName', 'TELLUS_GRACE_MASCON_CRI_GRID_RL06_V1_LAND'), ('start', '1970-01-12T18:40:19Z'), ('end', '1970-01-18T07:37:55Z')]), OrderedDict([('shortName', 'TELLUS_GRACE_MASCON_CRI_GRID_RL06_V1_OCEAN'), ('start', '1970-01-12T18:40:19Z'), ('end', '1970-01-18T07:37:55Z')]), OrderedDict([('shortName', 'TRMM_3B42_daily'), ('start', '1970-01-11T05:26:47Z'), ('end', '1970-01-17T19:11:54Z')]), OrderedDict([('shortName', 'TRMM_3B42_daily_CLIM'), ('start', '1970-01-01T00:00:00Z'), ('end', '1970-01-01T00:00:00Z')])]

As nexuscli has not been released as of yet it means that it cannot be used directly as a dependency however I am going to clone it and then simply add it to setup.py as described here. We can then build out the nexus interaction directly here within Podaacpy

@lewismc lewismc modified the milestones: 2.4.0, 2.5.0 Aug 23, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants