Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GSoC ideas #165

Closed
ocefpaf opened this issue Jan 31, 2021 · 9 comments
Closed

GSoC ideas #165

ocefpaf opened this issue Jan 31, 2021 · 9 comments

Comments

@ocefpaf
Copy link
Member

ocefpaf commented Jan 31, 2021

What is erddapy?

erddapy takes advantage of ERDDAP's RESTful web services to create the ERDDAP URLs.
The users can create virtually any request like,
searching for datasets, acquiring metadata, downloading data, etc.

What is ERDDAP?

ERDDAP is a data server that provides a consistent way to download subsets of scientific datasets.

There are many scientific data server available,
like OPeNDAP, WCS, SOS, OBIS, etc.
They all have their advantages and disadvantages,
ERDDAP goal is to fill the gaps and unify most of the advantages in a single service.
The main advantages of ERDDAP are:

  • offers an easy-to-use, consistent way to request data via the OPeNDAP;
  • returns data in the common file format of your choice,
    .html table, ESRI .asc and .csv, Google Earth .kml, OPeNDAP binary, .mat, .nc, ODV .txt, .csv, .tsv, .json, and .xhtml,
    and even some image formats (.png and .pdf);
  • standardizes the date-times where string times are always ISO 8601:2004(E) and
    numeric times are always "seconds since 1970-01-01T00:00:00Z";
  • acts as a middleman by reformatting the request into the format required by the remote server,
    and reformats the data into the format that you requested.

See https://coastwatch.pfeg.noaa.gov/erddap/index.html for more information.

Ideas for GSoC

  • idea 0: Support ERDDAP's griddap

erddapy supports only tabledap protocol but ERDDAP also provides a griddap protocol that servers gridded data like models and satellite images. One could extend erddapy's API to support griddap and expand the amount of data Python users can obtain with this library.

Issue: #32

  • Idea 1: Unify constraints

The library has two types of constraints, "regular ones" that are parsed as expected by Python users, and the relative_constraints, which are passed directly to ERDDAP without any pre-processing. Ideally the API should be unified to avoid confusing the users.

Issue: #164

  • Idea 2: High level data queries

The current API is a bit too verbose, for example:

e.dataset_id = "whoi_406-20160902T1700"

e.variables = [
    "depth",
    "latitude",
    "longitude",
    "salinity",
    "temperature",
    "time",
]

e.constraints = {
    "time>=": "2016-09-03T00:00:00Z",
    "time<=": "2016-09-04T00:00:00Z",
    "latitude>=": 38.0,
    "latitude<=": 41.0,
    "longitude>=": -72.0,
    "longitude<=": -69.0,
}

while that makes a good base for other libraries to be built on top of erddapy, like argopy and gliderpy, it makes it hard to use high level objects as constraints. For example, a shapefile are any GIS WKT-like object.

The idea would be to create a higher level API that could consume these object and output a similar query as the one described above.

Issue: #96

@kstonekuan
Copy link
Contributor

Hi @ocefpaf, my name is Kingston and I am a Computer Engineering Undergraduate from the National University of Singapore. When I was exploring research using flood datasets previously, I learnt how difficult gathering data is and am excited by your mission to support ocean-related research. I was intrigued by the work done for erddapy and would love to explore some of the ideas here for GSoC 2021. In particular, "Idea 2: High level data queries" has caught my attention as I have experience with REST APIs as well as pandas. Would it be possible to discuss this further with you? Thank you for your time!

@ocefpaf
Copy link
Member Author

ocefpaf commented Mar 10, 2021

Would it be possible to discuss this further with you?

Sure. At this point we are asking prospective students to get familiar with the project(s). Please read the documentation, check if there are any low hanging fruit in issues list that you could tackle. The GSoC application will start on March 29th. By then hopefully you will know if you want to work with this code base and have a draft proposal.

@kstonekuan
Copy link
Contributor

Would it be possible to discuss this further with you?

Sure. At this point we are asking prospective students to get familiar with the project(s). Please read the documentation, check if there are any low hanging fruit in issues list that you could tackle.

Thank you for your guidance, I will take a look at the current issues and contribute wherever I can!

@HenryKobin
Copy link

HenryKobin commented Mar 11, 2021

@ocefpaf I've been browsing around a couple of the IOOS GSoC project ideas, and had two quick questions.

  1. Can we propose to work on more than one codebase (I.E. an "idea" on this project and an "idea" on Colocate)?
  2. If we consider one of the ideas on this issue thread to potentially be low hanging fruit, can we try forking this project and working on it? I think I might have a decent solution to Idea #1. I understand if we should hold off on any of those until after submitting our proposals, though.

Thanks for your time!

@ocefpaf
Copy link
Member Author

ocefpaf commented Mar 11, 2021

@HenryKobin combining projects, as long as you have a feasible project, is fine and actually encouraged since we don't know how many slots Google will give us and some projects may not get funds.

The low hanging ideas are there just to help prospective students to write their proposals. A proposal that will be done in a few days probably won't get selected. TL;DR build up on those ideas and/or, to show engagement, even solve some of them before submitting your project.

@avishmehta68710
Copy link

@ocefpaf Hi
The chat channel mentioned in GSOC page of IOOS shows it has no rooms and no people. can you provide me a valid chat channel link for communication.
image

@ocefpaf
Copy link
Member Author

ocefpaf commented Mar 17, 2021

The chat channel mentioned in GSOC page of IOOS shows it has no rooms and no people. can you provide me a valid chat channel link for communication.

We'll use the issues here for now. The gitter, or some other chat technology, will be used when we start GSoC. The main reason is Gitter's move to matrix, which complicated our communications a little bit.

@avishmehta68710
Copy link

avishmehta68710 commented Mar 18, 2021

Hi @ocefpaf
in present situation we need to operate it from shell and IDE. i am thinking of integrating it with HTML,CSS,JS and Django for creating the webpages so that if a user does not know coding he can still get the knowledge. making a website so so that user can view it on web. and for the api of griddap protocols can i use python with django
i wanted your advice on my idea. Correct me if i am wrong
Thanks

@ocefpaf
Copy link
Member Author

ocefpaf commented Mar 22, 2021

@avishmehta68710 it is not clear to me what you are planning to do. Do you mind creating a new issue with tour idea? Or better yet, a Google Doc with a draft for your project?

@ocefpaf ocefpaf closed this as completed Sep 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants