CAMEL
About
The Comprehensive Assessment of Models and Events using Library Tools (CAMEL) framework is an integrated and flexible framework allowing users to seamlessly compare space weather and space science model outputs with observational data sets.
The backend of the CAMEL framework takes advantage of Community Coordinated Modeling Center (CCMC) existing services.
The front-end interactive visualization tool (i.e. CAMEL Web App) powered by the backend infrastructure allows users to plot model outputs and observation data sets together while providing options to calculate various skill scores from our library of skill scores.
In addition to using the CAMEL interactive visualization tool, the CAMEL framework provides a webservice interface or an Application Programming Interface (API) allowing users to download "approved data sets/output" available on the CAMEL backend database into their own environment. **Note: approved data sets/output = the original owner/curator of the data sets/output gives full permission to the CCMC to share and redistribute the data sets/output.
List of Validation Campaigns on CAMEL
Public Code/Data Repository
As of August 2023, the CAMEL Validation Skill Scores Library code is approved to be an official NASA Open-Source project.
To download and/or contribute to the code, please visit the NASA official code repository for the project: https://github.com/nasa/camel.
In addition, "approved data and output files" ingested into CAMEL are publicly accessible via this public GitLab repo.
Instructions to Provide Data to CAMEL
Before providing your data files to us, please review the following information:
In order to ingest data for your validation study into the CAMEL framework, metadata about your study as well as your data sets are needed.
Currently, CAMEL can only ingest 1-D time-series data. The expected format for data files are ASCII/TEXT files with date/time and parameters in separate columns (see example file [TEXT File]).
Note: It will be helpful to go to the CAMEL Web App to see other validation studies that are available on our system now. Let us know if your data sets should go under an existing validation study or a new one should be created for you.
Required Metadata Information
Please send an email request to the CAMEL team with the following information:
- Which Domain does your validation study fit in? (e.g. Solar, Heliosphere, Magnetosphere, Ionosphere, Thermosphere, Space Radiation and Plasma Effects, etc.)
- What Topic does your validation study fit in? (Surfacing Charging in near-earth region, Solar Wind Parameters, Total Electron Content, etc.)
- What is the location for your study? (e.g. L1) Note: your validation study name would be the combination of topic and location (ex: TEC at Boulder)
- Is this a specific event study? If so, please provide your event name, start date in UTC, end date in UTC, and Description.
- What are the parameters for your validation study? For each parameter, please provide the parameter name, description, and units.
Data Files Upload Instructions
Please contact the CAMEL team if you are interested in providing/uploading data files to be ingested into CAMEL for a validation study.
All "approved data and output files" ingested into CAMEL are publicly accessible via this public GitLab repo.
Expected/Recommended File Format: ASCII/text file with date, time, parameters, and location/instrument in separate columns (see example file [TEXT File]).
Publications
- L. Rastaetter, C. Wiegand, R. Mullinix (2019), Comprehensive Assessment of Models and Events using Library Tools (CAMEL) framework: Time series comparisons, Space Weather, DOI: 10.1029/2018SW002043.
Publication Policy
For tracking purposes for our government sponsors, we ask that you notify the CCMC whenever you use any CCMC tools/software systems in any scientific publications and/or presentations. Follow the steps on the publication submission page
See our full publication policy for a sample 'acknowledgement statement' to be included in your publication.
Please also follow and acknowledge the owner/generator/curator of the original data sets/output by adhering to their rules of the road, licenses, and/or data policy whenever applicable.
Web Service/API Documentation
EndPoint: info
https://ccmc.gsfc.nasa.gov/camel-api/info?
https://ccmc.gsfc.nasa.gov/camel-api/info?study=STUDYNAME
Example: https://ccmc.gsfc.nasa.gov/camel-api/info?study=AmbientSolarWind
Optional Argument
study (string): Name of the study
Note: if no study name is used, the call would return all studies info
Returns (JSON)
studyID, studyName, description, studyPage, publicRepoUR
Sample Output
[
{
"studyID": "AmbientSolarWind",
"studyName": "Ambient Solar Wind Validation Study",
"description": "Ambient Solar Wind Validation Study under the COSPAR ISWAT Team ID, H1-01",
"studyPage": "https://ccmc.gsfc.nasa.gov/iswat/H1-01/",
"publicRepoURL": "https://git.smce.nasa.gov/ccmc-share/camel-data/-/tree/master/Ambient-Solar-Wind?ref_type=heads"
}
]
EndPoint: timeperiods
https://ccmc.gsfc.nasa.gov/camel-api/timeperiods?study=STUDNAME
Example: https://ccmc.gsfc.nasa.gov/camel-api/timeperiods?study=AmbientSolarWind
Argument (Query String)
study (string): Name of the study
Returns (JSON)
timeperiodID, timeperiodName, startDate, endDate, timeperiodType
Sample Output
[
{
"timeperiodID": "1963-01-TP-01",
"timeperiodName": "1963-01-TP-01",
"startDate": "1963-01-01T00:00:00Z",
"endDate": "2023-01-01T00:00:00Z",
"timeperiodType": null
},
{
"timeperiodID": "1992-05-TP-01",
"timeperiodName": "1992-05-TP-01",
"startDate": "1992-05-24T00:00:00Z",
"endDate": "2017-01-01T00:00:00Z",
"timeperiodType": null
},
{
"timeperiodID": "2008-01-TP-01",
"timeperiodName": "2008-01-TP-01",
"startDate": "2008-01-01T00:00:00Z",
"endDate": "2009-01-01T00:00:00Z",
"timeperiodType": null
},
{
"timeperiodID": "2012-01-TP-01",
"timeperiodName": "2012-01-TP-01",
"startDate": "2012-01-01T00:00:00Z",
"endDate": "2013-01-01T00:00:00Z",
"timeperiodType": null
},
{
"timeperiodID": "2017-01-TP-01",
"timeperiodName": "2017-01-TP-01",
"startDate": "2017-01-01T00:00:00Z",
"endDate": "2018-01-01T00:00:00Z",
"timeperiodType": null
},
{
"timeperiodID": "2024-01-TP-01",
"timeperiodName": "2024-01-TP-01",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-06-01T00:00:00Z",
"timeperiodType": null
}
]
EndPoint: locations
https://ccmc.gsfc.nasa.gov/camel-api/locations?study=STUDYNAME
Example: https://ccmc.gsfc.nasa.gov/camel-api/locations?study=AmbientSolarWind
Argument (Query String)
study (string): Name of the study
Returns (JSON)
locationID, locationName, description, magLong, magLat, geoLat, geoLon, region
Sample Output
[
{
"locationID": "L1",
"locationName": "L1",
"description": "The Lagrangian point 1 (L1) of the Sun-Earth system",
"magLon": 0,
"magLat": 0,
"geoLat": 0,
"geoLon": 0,
"region": null
}
]
EndPoint: sources
https://ccmc.gsfc.nasa.gov/camel-api/sources?study=STUDYNAME
Example: https://ccmc.gsfc.nasa.gov/camel-api/sources?study=AmbientSolarWind
Argument (Query String)
study (string): Name of the study
Returns (JSON)
sourceID, sourceName, description, isObservation, isProtected
Sample Output
[
{
"sourceID": "Bailey-ML",
"sourceName": "BAILEY ML",
"description": "Bailey-ML model output",
"isObservation": false,
"isProtected": false
},
{
"sourceID": "BRaVDA",
"sourceName": "BRaVDA",
"description": "BRaVDA model output",
"isObservation": false,
"isProtected": false
},
{
"sourceID": "EUHFORIA",
"sourceName": "Euhforia ",
"description": "EUHFORIA model output",
"isObservation": false,
"isProtected": false
},
{
"sourceID": "OMNI_PT1H",
"sourceName": "OMNI Hourly Data Set",
"description": "Hourly averaged, multi-source, near-Earth solar wind magnetic field, plasma and energetic proton flux data from OMNI, https://hpde.io/NASA/NumericalData/OMNI/HighResolutionObservations/Version1/PT1M",
"isObservation": true,
"isProtected": false
}
]
EndPoint: parameters
https://ccmc.gsfc.nasa.gov/camel-api/parameters?study=STUDYNAME
Example: https://ccmc.gsfc.nasa.gov/camel-api/parameters?study=AmbientSolarWind
Argument (Query String)
study (string): Name of the study
Returns (JSON)
parameterID, parameterName, description, unit
Sample Output
[
{
"parameterID": "Flow_Speed",
"parameterName": "Flow_Speed",
"description": "Plasma (proton) flow speed",
"unit": "km/s"
},
{
"parameterID": "Proton_Density",
"parameterName": "Proton_Density",
"description": "Plasma proton density",
"unit": "N/cm^3"
}
]
EndPoint: data
data?study=“studyID”& source=“sourceID”&location=“locationID”&start=“timestamp”&end=“timestamp”¶meters=“P0,P1”&type=“json/csv/traces”
data?study=“studyID”&source=“sourceID”&location=“locationID”&timeperiod=“timeperiodID”
Argument (Query String)
study (string) is required: studyID
source (string) is required: sourceID
location (string) is required: locationID
Either start+end OR timeperiod is required. Note: start and end must be in format YYYY-MM-DDTHH:mm:ssZ
parameter is optional and is default to return ALL parameters if not used: parameterID,parameterID,…
type is default to json while we also provide csv and traces as the other option on return type format
Sample Output (JSON)
{
"parameters": ["Flow_Speed"],
"data": [
["2008-01-01T00:13:30Z", 426.362],
["2008-01-01T00:23:30Z", 426.18701],
["2008-01-01T00:33:30Z", 426.01001],
["2008-01-01T00:43:30Z", 425.82901],
["2008-01-01T00:53:30Z", 425.64499]
]
}
Sample Output (TRACES)
{
"parameters": ["Flow_Speed"],
"timestamps": [
"2008-01-01T00:13:30Z",
"2008-01-01T00:23:30Z",
"2008-01-01T00:33:30Z",
"2008-01-01T00:43:30Z",
"2008-01-01T00:53:30Z"
],
"values": [[426.362], [426.18701], [426.01001], [425.82901], [425.64499]]
}
Sample Output (CVS)
# timestamp Flow_Speed
2008-01-01T00:13:30Z 426.362
2008-01-01T00:23:30Z 426.18701
2008-01-01T00:33:30Z 426.01001
2008-01-01T00:43:30Z 425.82901
2008-01-01T00:53:30Z 425.64499