Importing ChampionX Data
This import script uploads ChampionX aerial survey data into the platform. Unlike the emission importers, it does not create emission/plume records — each survey becomes a DataSurvey record in the extra_data app (the shape the frontend ChampionX layer / 3D viewer reads).
Data Package Format
ChampionX is the one importer that takes a multi-CSV folder instead of a single CSV. The --data_path folder must contain:
- A
surveys.csvmanifest — one row per survey. - One point CSV per survey, referenced by the
point_filecolumn.
The script uploads surveys.csv plus every point CSV it references.
surveys.csv
One row per survey. The following headers must be present:
| Header | Type | Blank | Help |
|---|---|---|---|
| site | String | NO | Survey/site name (used as the survey description) |
| date | Date | NO | Survey date |
| lat | Number | NO | Survey location latitude |
| lon | Number | NO | Survey location longitude |
| point_file | String | NO | Filename of the point CSV for this survey, present in the same folder |
Any other column in surveys.csv is copied verbatim into DataSurvey.metadata — only the structural columns above (site, lat, lon, point_file, which are stored in dedicated fields) are excluded. Columns commonly included: site_type, priority, aircraft, date, ch4_kgh, ch4_uncertainty_kgh, ch4_within_uncertainty_of_zero, co2_tonh, co2_uncertainty_tonh, co2_within_uncertainty_of_zero, wind_dir_deg, wind_speed_ms, start_local, end_local, notes.
Point CSV (one per survey)
Each point CSV holds the measurement points for one survey. The following headers must be present:
| Header | Type | Blank | Help |
|---|---|---|---|
| time_epoch | Number | NO | Unix epoch seconds; min/max set the survey start/end datetime |
| latitude | Number | NO | |
| longitude | Number | NO | |
| altitude | Number | NO | Metres |
| wind_u | Decimal | NO | Stored on the point as windU |
| wind_v | Decimal | NO | Stored on the point as windV |
| temperature_c | Decimal | NO | Stored on the point as temp |
| ch4_ppm | Decimal | NO | Stored on the point as ch4 |
| co2_ppm | Decimal | NO | Stored on the point as co2 |
Note: Each point becomes a GeoJSON Point feature in the survey's survey_data FeatureCollection. Any additional point columns are carried into the feature properties unchanged.
Script Arguments
In addition to the common arguments (environment, api_key, data_path), the ChampionX script accepts:
--owner- Owner Company name. Optional; ChampionX data is normally unowned, so omit it unless the surveys belong to a specific company.
The script hard-sets import_type to EXTRA_DATA.
Example
Import a ChampionX folder on the staging environment:
python -m importers.extra_data.championx --environment staging --api_key {API_KEY_VALUE} --data_path {PATH_TO_FOLDER}With an owner:
python -m importers.extra_data.championx --environment staging --api_key {API_KEY_VALUE} --data_path {PATH_TO_FOLDER} --owner "{OWNER_NAME}"Related documentation
- Troubleshooting — common errors and solutions