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
BLATM1BDatasetDatasetGLAH06DatasetILATM1BDatasetILVIS2Dataset- 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
ATM1BDatasetATM1BSchemaCommonDataColumnsSchemaDatasetGLAH06SchemaGLAH06Schema.d_DEM_elvGLAH06Schema.d_ElevBiasCorrGLAH06Schema.d_FRir_cldtopGLAH06Schema.d_FRir_intsigGLAH06Schema.d_GmCGLAH06Schema.d_RecNrgAllGLAH06Schema.d_SigBegOffGLAH06Schema.d_SigEndOffGLAH06Schema.d_TrshRngOffGLAH06Schema.d_TxNrgGLAH06Schema.d_beamAzimuthGLAH06Schema.d_beamCoelvGLAH06Schema.d_cntRngOffGLAH06Schema.d_d2refTrkGLAH06Schema.d_dTropGLAH06Schema.d_deltaEllipGLAH06Schema.d_elevGLAH06Schema.d_eqElvGLAH06Schema.d_erElvGLAH06Schema.d_gdHtGLAH06Schema.d_isRngOffGLAH06Schema.d_kurt2GLAH06Schema.d_latGLAH06Schema.d_ldElvGLAH06Schema.d_ldRngOffGLAH06Schema.d_lonGLAH06Schema.d_maxRecAmpGLAH06Schema.d_maxSmAmpGLAH06Schema.d_ocElvGLAH06Schema.d_ocRngOffGLAH06Schema.d_pctSATGLAH06Schema.d_poTideGLAH06Schema.d_refRngGLAH06Schema.d_reflctUCGLAH06Schema.d_sDevNsOb1GLAH06Schema.d_satElevCorrGLAH06Schema.d_satNrgCorrGLAH06Schema.d_siRngOffGLAH06Schema.d_skew2GLAH06Schema.d_wTrop
ILVIS2SchemaIceflowSearchResult
- 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).