nsidc.iceflow package¶
Copyright (c) 2025 NSIDC. All rights reserved.
iceflow: Harmonized access to (pre)OIB/IceSAT/IceSAT2 data
Users interact with nsidc-iceflow by:
Searching for data that match an area of interest/time (find_iceflow_data)
Downloading data (download_iceflow_results)
(Optional) Creating a parquet datastore to facilitate reading the data (make_iceflow_parquet)
Reading and doing analysis with the data (dask.dataframe.read_parquet, read_iceflow_datafiles)
(Optional, if using read_iceflow_datafiles) Transform the lat/lon/elev data into a target International Terrestrial Reference Frame (ITRF) (transform_itrf)
- class nsidc.iceflow.BLATM1BDataset(**data)¶
Bases:
ATM1BDataset
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- short_name: ATM1BShortName¶
- version: Literal['1']¶
- class nsidc.iceflow.Dataset(**data)¶
Bases:
BaseModel
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- short_name: DatasetShortName¶
- property subdir_name¶
- version: str¶
- class nsidc.iceflow.GLAH06Dataset(**data)¶
Bases:
Dataset
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- short_name: DatasetShortName¶
- version: Literal['034']¶
- class nsidc.iceflow.ILATM1BDataset(**data)¶
Bases:
ATM1BDataset
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- short_name: ATM1BShortName¶
- version: Literal['1', '2']¶
- class nsidc.iceflow.ILVIS2Dataset(**data)¶
Bases:
Dataset
- Parameters:
data (
Any
)
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- short_name: DatasetShortName¶
- version: Literal['1', '2']¶
- nsidc.iceflow.download_iceflow_results(iceflow_search_results, output_dir)¶
- Parameters:
iceflow_search_results (
list
[IceflowSearchResult
])output_dir (
Path
)
- Return type:
- nsidc.iceflow.find_iceflow_data(*, datasets=[ILATM1BDataset(short_name='ILATM1B', version='1'), ILATM1BDataset(short_name='ILATM1B', version='2'), BLATM1BDataset(short_name='BLATM1B', version='1'), ILVIS2Dataset(short_name='ILVIS2', version='1'), ILVIS2Dataset(short_name='ILVIS2', version='2'), GLAH06Dataset(short_name='GLAH06', version='034')], **search_kwargs)¶
Find iceflow-compatible data using search kwargs.
search_kwargs are passed to earthaccess.search_data, allowing for CMR-supported filters (see https://cmr.earthdata.nasa.gov/search/site/docs/search/api.html)
- Parameters:
- Return type:
- nsidc.iceflow.make_iceflow_parquet(*, data_dir, target_itrf, overwrite=False, target_epoch=None, ilvis2_coordinate_set='low_mode')¶
Create a parquet dataset containing the lat/lon/elev data in data_dir.
This function creates a parquet dataset that can be easily used alongside dask, containing lat/lon/elev data. Users who are interested in the full data record with all fields provided by data in the data_dir should use read_iceflow_datafiles.
Note: this function writes a single iceflow.parquet to the output dir. This code does not currently support updates to the parquet after being written. This is intended to help facilitate analysis of a specific area over time. If an existing iceflow.parquet exists and the user wants to create a new iceflow.parquet for a different area or timespan, they will need to move/remove the existing iceflow.parquet first (e.g., with the overwrite=True kwarg).
- nsidc.iceflow.read_iceflow_datafiles(filepaths, ilvis2_coordinate_set='low_mode')¶
- Parameters:
- Return type:
DataFrame
[CommonDataColumnsSchema
]
- nsidc.iceflow.transform_itrf(data, target_itrf, target_epoch=None, plate=None)¶
Transform the data’s latitude/longitude/elevation variables from the source ITRF to the target ITRF.
If a target_epoch is given, coordinate propagation is performed via a plate motion model (PMM) defined for the target_itrf. The target epoch determines the number of years into the future/past the observed points should be propagated. For example, if a point’s observation date (t_observed) is 1993.0 (1993-01-01T00:00:00) and the target_epoch is 2011.0 (2011-01-01T00:00:00), the point will be propagated forward 18 years. Note that not all ITRFs have PMMs defined for them. The PMM used is defined for the target_epoch, so it is likely to be most accurate for points observed near the ITRF’s defined epoch.
All ITRF and PMM transformations are dependent on the user’s proj installation’s ITRF init files (see https://proj.org/en/9.3/resource_files.html#init-files). For example, ITRF2014 parameters are defined here: https://github.com/OSGeo/PROJ/blob/8b65d5b14e2a8fbb8198335019488a2b2968df5c/data/ITRF2014.
Note that ILVIS2 data contain more than one set of latitude/longitude/elevation variables (e.g., HLAT/HLON/ZH, CLAT/CLON/ZC). This function only transforms the primary latitude/longitude/elevation fields in the provided dataframe. Use the ilvis2_coordinate_set kwarg on read_iceflow_datafile(s) to select an different primary set of latitude/longitude/elevation fields. Alternatively, manually set the fields:
` # TLAT/TLON/TZ are only available in ILVIS2v2 data: sel_ilvis2v2 = data.dataset == "ILVIS2v2" data.loc[sel_ilvis2v2, ["latitude", "longitude", "elevation"]] = data.loc[sel_ilvis2v2, ["TLAT", "TLON", "ZT"]] `
- Parameters:
- Return type:
DataFrame
[CommonDataColumnsSchema
]
Subpackages¶
- nsidc.iceflow.data package
BLATM1BDataset
Dataset
GLAH06Dataset
ILATM1BDataset
ILVIS2Dataset
- Submodules
- nsidc.iceflow.data.atm1b module
- nsidc.iceflow.data.fetch module
- nsidc.iceflow.data.glah06 module
- nsidc.iceflow.data.ilvis2 module
- nsidc.iceflow.data.models module
ATM1BDataset
ATM1BSchema
CommonDataColumnsSchema
Dataset
GLAH06Schema
GLAH06Schema.d_DEM_elv
GLAH06Schema.d_ElevBiasCorr
GLAH06Schema.d_FRir_cldtop
GLAH06Schema.d_FRir_intsig
GLAH06Schema.d_GmC
GLAH06Schema.d_RecNrgAll
GLAH06Schema.d_SigBegOff
GLAH06Schema.d_SigEndOff
GLAH06Schema.d_TrshRngOff
GLAH06Schema.d_TxNrg
GLAH06Schema.d_beamAzimuth
GLAH06Schema.d_beamCoelv
GLAH06Schema.d_cntRngOff
GLAH06Schema.d_d2refTrk
GLAH06Schema.d_dTrop
GLAH06Schema.d_deltaEllip
GLAH06Schema.d_elev
GLAH06Schema.d_eqElv
GLAH06Schema.d_erElv
GLAH06Schema.d_gdHt
GLAH06Schema.d_isRngOff
GLAH06Schema.d_kurt2
GLAH06Schema.d_lat
GLAH06Schema.d_ldElv
GLAH06Schema.d_ldRngOff
GLAH06Schema.d_lon
GLAH06Schema.d_maxRecAmp
GLAH06Schema.d_maxSmAmp
GLAH06Schema.d_ocElv
GLAH06Schema.d_ocRngOff
GLAH06Schema.d_pctSAT
GLAH06Schema.d_poTide
GLAH06Schema.d_refRng
GLAH06Schema.d_reflctUC
GLAH06Schema.d_sDevNsOb1
GLAH06Schema.d_satElevCorr
GLAH06Schema.d_satNrgCorr
GLAH06Schema.d_siRngOff
GLAH06Schema.d_skew2
GLAH06Schema.d_wTrop
ILVIS2Schema
IceflowSearchResult
- nsidc.iceflow.data.read module
- nsidc.iceflow.data.supported_datasets module
- nsidc.iceflow.itrf package
Submodules¶
nsidc.iceflow.api module¶
Module with functions defining the user-facing API for nsidc-iceflow.
- nsidc.iceflow.api.make_iceflow_parquet(*, data_dir, target_itrf, overwrite=False, target_epoch=None, ilvis2_coordinate_set='low_mode')¶
Create a parquet dataset containing the lat/lon/elev data in data_dir.
This function creates a parquet dataset that can be easily used alongside dask, containing lat/lon/elev data. Users who are interested in the full data record with all fields provided by data in the data_dir should use read_iceflow_datafiles.
Note: this function writes a single iceflow.parquet to the output dir. This code does not currently support updates to the parquet after being written. This is intended to help facilitate analysis of a specific area over time. If an existing iceflow.parquet exists and the user wants to create a new iceflow.parquet for a different area or timespan, they will need to move/remove the existing iceflow.parquet first (e.g., with the overwrite=True kwarg).