Contrail forecast data
Stay organized with collections
Save and categorize content based on your preferences.
This document species the NetCDF data contract for contrail forecast data as returned by the Contrail Forecast API method getGrids
.
Forecast grids cover the whole globe and are returned in the netCDF4 format.
Dimensions
Name |
Type |
Description |
longitude |
float32 |
-180 to +180 (inclusive), as configured in the request. Grid resolution is 0.25 degrees but may change in the future. |
latitude |
float32 |
-90 to +90 (inclusive), as configured in the request. Grid resolution is 0.25 degrees but may change in the future. |
flight_level |
int16 |
[270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440], as configured in the request, in hectofeet. Flight levels are derived from pressure levels. |
time |
datetime64[ns] |
The requested real world forecast date and time, in UTC. |
forecast_reference_time |
datetime64[ns] |
Date and time at which the forecast was computed, rather than the time of forecast itself, in UTC. |
Variables
contrails (float32)
: (longitude, latitude, flight_level, time) continuous contrail forcing index values from [0 - 4].
Contrail forcing index values are inspired by turbulence forecast values.
Severity values can be interpreted as:
Value |
Interpretation |
0 |
None |
1 |
Low (light) |
2 |
Moderate |
3 |
High (severe) |
4 |
Extreme |
Example
Example scaling translates ef_per_m
to contrails
index:
ds["contrails"] = ds["ef_per_m"].clip(min=1e7, max=2e9)
ds["contrails"] = ((ds["contrails"] - 1e7) / (2e9 - 1e7)) * 4
For more information on background informing example mapping from ef_per_m
to contrails index, see Energy Forcing Interpretation.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-28 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[],[],null,["# Contrail forecast data\n\nThis document species the [NetCDF](https://www.unidata.ucar.edu/software/netcdf/) data contract for contrail forecast data as returned by the Contrail Forecast API method `getGrids`.\n\nData format\n-----------\n\n\nForecast grids cover the whole globe and are returned in the netCDF4 format.\n\nDimensions\n----------\n\n| Name | Type | Description |\n|---------------------------|------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `longitude` | `float32` | -180 to +180 (inclusive), as configured in the request. Grid resolution is 0.25 degrees but may change in the future. |\n| `latitude` | `float32` | -90 to +90 (inclusive), as configured in the request. Grid resolution is 0.25 degrees but may change in the future. |\n| `flight_level` | `int16` | \\[270, 280, 290, 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 400, 410, 420, 430, 440\\], as configured in the request, in hectofeet. Flight levels are derived from pressure levels. |\n| `time` | `datetime64[ns]` | The requested real world forecast date and time, in UTC. |\n| `forecast_reference_time` | `datetime64[ns]` | Date and time at which the forecast was computed, rather than the time of forecast itself, in UTC. |\n\nVariables\n---------\n\n`contrails (float32)`: (longitude, latitude, flight_level, time) continuous contrail forcing index values from \\[0 - 4\\]. \n\nContrail forcing index values are inspired by [turbulence forecast values](https://www.weather.gov/source/zhu/ZHU_Training_Page/turbulence_stuff/turbulence/turbulence.htm#:~:text=TURBULENCE%20INTENSITY,attitude%20or%20a%20slight%20bumpiness). \nSeverity values can be interpreted as:\n\n| Value | Interpretation |\n|-------|----------------|\n| 0 | None |\n| 1 | Low (light) |\n| 2 | Moderate |\n| 3 | High (severe) |\n| 4 | Extreme |\n\nExample\n-------\n\nExample scaling translates `ef_per_m` to `contrails` index: \n\n ds[\"contrails\"] = ds[\"ef_per_m\"].clip(min=1e7, max=2e9)\n ds[\"contrails\"] = ((ds[\"contrails\"] - 1e7) / (2e9 - 1e7)) * 4\n\nFor more information on background informing example mapping from `ef_per_m` to contrails index, see [Energy Forcing Interpretation](https://apidocs.contrails.org/ef-interpretation.html).\n\nReferences\n----------\n\n- [weather.gov Turbulence](https://www.weather.gov/source/zhu/ZHU_Training_Page/turbulence_stuff/turbulence/turbulence.htm#:~:text=TURBULENCE%20INTENSITY,attitude%20or%20a%20slight%20bumpiness)"]]