tos2ca-user-interface
Web front end and API architecture for TOS2CA
Science Score: 75.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
✓Institutional organization owner
Organization nasa-jpl has institutional domain (www.jpl.nasa.gov) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.1%) to scientific vocabulary
Scientific Fields
Repository
Web front end and API architecture for TOS2CA
Basic Info
- Host: GitHub
- Owner: nasa-jpl
- License: apache-2.0
- Language: JavaScript
- Default Branch: main
- Size: 4.35 MB
Statistics
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
User Interface
The user-interface library is part of the of the TOS2CA Project. For more information, visit the TOS2CA website at https://nasa-jpl.github.io/tos2ca-documentation/.
Overview
The TOS2CA user interface is designed to submit jobs to the TOS2CA system. This can be done through the graphical interface on the website or through RESTful API calls.
Requirements
Web interface
The system is designed to be run as part of a LAMP configure and is written in PHP. It requires: - Access to the TOS2CA MySQL database - AWS SDK for PHP - Version 3 (not included in this repo) - Access to an S3 bucket - Data Access Server - Leaflet - Bootstrap - Datatables
Notes
- You will have to update paths to any local files.
- You will have to update the name of the S3 bucket you want to point to.
- Look for places in the PHP or JS code that reference URLs, S3 bins, etc. and make sure to update them.
- Styling for the site is barebones. Bootstrap is linked to the pages but minimial use of it is made. It is up to the user to add styling to the front end pages to their preferences.
APIs
- FastAPI for Python
- Access to the TOS2CA MySQL database
- See the requirements.txt file for additional dependencies
Website Pages
The following is a list of pages offered by the website and their function:
- Phenomenon Definition (index.php): The main page of the website, where users submit PhDef job parameters
- Phenomenon Definition Viewer (phenomenonviewer.php): Users can view a table of contents of anomalies that their PhDef job produced, along with footprint of those anomalies on a mask
- Predefined Phenomenon (phenomenonpredefined.php): Page that contains searchable tables of mask files for pre-defined phenomenon, like tropical cyclones and wildfires
- Data Curation (datacuration.php): Where users can submit their Data Curation job parameters
- Job Lookup (joblookup.php): Form users can use to lookup the information about jobs they have submitted
- Visualization (visualization.php): Landing page for visualization tools, integrated with the data_access_server repo
API Calls
Users can submit jobs and check status using the system's APIs, based on Python's FastAPI library.
Endpoints and Examples
Submit a PhDef Job: /api/phdef/submit
curl -X POST 'https://yourwebsite.com/api/phdef/submit' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"firstName": "John", "lastName":"Doe", "email":"abc@email.com", "dataset":"GPM_MERGIR", "variable": "Tb", "startDate": "2024-05-29", "endDate": "2024-05-30", "coords": "-109.28 45.17,-109.28 64.81,-59.36 64.81,-59.36 45.17", "ineqOperator": "lessThan", "ineqValue": "12", "description": "Test"}'
PhDef Job Status: /api/phdef/status
``` https://yourwebsite.com/api/phdef/status?jobID=138
or
curl -X GET https://yourwebsite.com/api/phdef/status?jobID=138 ```
Submit a Data Curation Job: /api/data-curation/submit
curl -X POST 'https://yourwebsite.com/api/data-curation/submit' -H 'accept: application/json' -H 'Content-Type: application/json' -d '{"jobID": 146, "firstName": "Jane", "lastName":"Doe", "email":"abc@email.com", "dataset":"GPM_MERGIR", "variable": "Tb", "description": "Test"}'
Data Curation Status: /api/data-curation/status
``` https://tos2ca-dev1.jpl.nasa.gov/api/data-curation/status?jobID=142
or
curl -X GET https://tos2ca-dev1.jpl.nasa.gov/api/data-curation/status?jobID=142 ```
Known Issues and Considerations
- The API endpoints in
/api/main.pyneed to be running for the visualization tool (indata_access_server) to work. - Several pages and endpoints take advantage of the AWS SDK
ListObjectsV2API to return a list of files. Note that it has a limit and will only return up to 1000 files at a time.
Owner
- Name: NASA Jet Propulsion Laboratory
- Login: nasa-jpl
- Kind: organization
- Email: github@jpl.nasa.gov
- Location: Pasadena, California, US
- Website: https://www.jpl.nasa.gov
- Repositories: 36
- Profile: https://github.com/nasa-jpl
A world leader in the robotic exploration of space
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: >-
Thematic Observation Search, Segmentation, Collation and
Analysis (TOS2CA)
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Ziad
family-names: Haddad
email: zsh@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0002-2608-6274'
- given-names: Jason
family-names: Eriksen
affiliation: Columbia University
- given-names: Ryan
family-names: Fuller
email: Ryan.A.Fuller@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0001-5785-9949'
- given-names: Alexandre
family-names: Guillaume
email: Alexandre.Guillaume@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0002-4322-5862'
- given-names: Svetla
family-names: Hristova-Veleva
email: Svetla.Hristova@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0003-2048-5167'
- given-names: Brian
family-names: Knosp
email: Brian.Knosp@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0002-2266-8883'
- given-names: Phillip
family-names: Le
affiliation: Columbia University
- given-names: Flynn
family-names: Platt
email: Flynn.Platt@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0009-0000-9246-2576'
- given-names: Federica
family-names: Polverari
email: federica.polverari@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
orcid: 'https://orcid.org/0000-0002-2038-4983'
- given-names: Randy
family-names: Sawaya
email: randy.sawaya@primer.ai
affiliation: Primer
orcid: 'https://orcid.org/0000-0003-1771-634X'
- given-names: Quoc
family-names: Vu
email: qvu@jpl.nasa.gov
affiliation: Jet Propulsion Laboratory
identifiers:
- type: doi
value: 10.5281/zenodo.16053702
description: >-
Link to an archived copy of the TOS2CA v2 software on
Zenodo
repository-code: 'https://github.com/nasa-jpl/tos2ca-documentation'
url: 'https://nasa-jpl.github.io/tos2ca-documentation/'
abstract: >-
Thematic Observation Search, Segmentation, Collation and
Analysis (TOS2CA) is a user-driven, data-centric system
that identifies, collates, statistically characterizes,
and serves Earth science data relevant to a given
phenomenon. It facilitates the collation and analysis of
data from disparate sources and makes it possible for
scientists to establish science traceability requirements,
quantify detection thresholds, define uncertainty
requirements, and establish data sufficiency to formulate
truly innovative missions and research investigations.
license: Apache-2.0
version: v2.0
date-released: '2025-08-01'
preferred-citation:
authors:
- family-names: Haddad
given-names: Ziad
- family-names: Eriksen
given-names: Jason
- family-names: Fuller
given-names: Ryan
- family-names: Guillaume
given-names: Alexandre
- family-names: Hristova-Veleva
given-names: Svetla
- family-names: Knosp
given-names: Brian
- family-names: Le
given-names: Phillip
- family-names: Platt
given-names: Flynn
- family-names: Polverarai
given-names: Federica
- family-names: Sawaya
given-names: Randy
- family-names: Vu
given-names: Quoc
title: Thematic Observation Search, Segmentation, Collation and Analysis (TOS2CA)
type: software
year: 2025
version: v2.0
doi: 10.5281/zenodo.16053702
GitHub Events
Total
- Delete event: 1
- Push event: 1
- Public event: 1
- Create event: 2
Last Year
- Delete event: 1
- Push event: 1
- Public event: 1
- Create event: 2
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Jinja2 ==3.1.4
- MarkupSafe ==2.1.5
- PyMySQL ==1.1.1
- PyYAML ==6.0.1
- Pygments ==2.18.0
- aiobotocore ==2.13.0
- aiohttp ==3.9.5
- aioitertools ==0.11.0
- aiosignal ==1.3.1
- annotated-types ==0.7.0
- anyio ==4.4.0
- async-timeout ==4.0.3
- attrs ==23.2.0
- botocore ==1.34.106
- certifi ==2024.7.4
- charset-normalizer ==3.3.2
- click ==8.1.7
- dnspython ==2.6.1
- email_validator ==2.2.0
- exceptiongroup ==1.2.1
- fastapi ==0.111.0
- fastapi-cli ==0.0.4
- frozenlist ==1.4.1
- fsspec ==2024.6.0
- h11 ==0.14.0
- httpcore ==1.0.5
- httptools ==0.6.1
- httpx ==0.27.0
- idna ==3.7
- jmespath ==1.0.1
- markdown-it-py ==3.0.0
- mdurl ==0.1.2
- multidict ==6.0.5
- orjson ==3.10.5
- pydantic ==2.7.4
- pydantic_core ==2.18.4
- python-dateutil ==2.9.0.post0
- python-dotenv ==1.0.1
- python-multipart ==0.0.9
- requests ==2.32.3
- rich ==13.7.1
- s3fs ==2024.6.0
- shellingham ==1.5.4
- six ==1.16.0
- sniffio ==1.3.1
- starlette ==0.37.2
- typer ==0.12.3
- typing_extensions ==4.12.2
- ujson ==5.10.0
- urllib3 ==1.26.19
- uvicorn ==0.30.1
- uvloop ==0.19.0
- watchfiles ==0.22.0
- websockets ==12.0
- wrapt ==1.16.0
- yarl ==1.9.4