nsidc.iceflow.data package

class nsidc.iceflow.data.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.data.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.data.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.data.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.data.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']

Submodules

nsidc.iceflow.data.atm1b module

class nsidc.iceflow.data.atm1b.Endian(*values)

Bases: Enum

BIG = 2
LITTLE = 1
nsidc.iceflow.data.atm1b.atm1b_data(filepath)

Return the atm1b data given a filename.

Parameters:

filepath (Path) – The filepath to read.

Returns:

The atm1b (pandas.DataFrame) data.

Return type:

data

nsidc.iceflow.data.atm1b.extract_itrf(filepath)
Parameters:

filepath (Path)

Return type:

str

nsidc.iceflow.data.fetch module

nsidc.iceflow.data.fetch.download_iceflow_results(iceflow_search_results, output_dir)
Parameters:
Return type:

list[Path]

nsidc.iceflow.data.fetch.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:

datasets (list[Dataset])

Return type:

list[IceflowSearchResult]

nsidc.iceflow.data.glah06 module

nsidc.iceflow.data.glah06.glah06_data(filepath)

Return an GLAH06 file DataFrame, performing all necessary conversions / augmentation on the data.

Parameters:

filepath (Path)

Return type:

DataFrame[GLAH06Schema]

nsidc.iceflow.data.ilvis2 module

class nsidc.iceflow.data.ilvis2.Field(name, type, scale_factor)

Bases: tuple

See: https://lvis.gsfc.nasa.gov/Data/Data_Structure/DataStructure_LDS104.html

Note: The LVIS site (above) and NSIDC data files use different names for the fields. The list of field tuples below matches the documentation on the LVIS site. This is done to simplify the code and ease the mental mapping of the v1.0.4 and v2.0.2b fields to the database. The mapping between the names used below (same as LVIS docs) and the field names used in the NSIDC files is:

CLON = LONGITUDE_CENTROID CLAT = LATITUDE_CENTROID ZC = ELEVATION_CENTROID GLON = LONGITUDE_LOW GLAT = LATITUDE_LOW ZG = ELEVATION_LOW HLON = LONGITUDE_HIGH HLAT = LATITUDE_HIGH ZH = ELEVATION_HIGH

name

Alias for field number 0

scale_factor

Alias for field number 2

type

Alias for field number 1

nsidc.iceflow.data.ilvis2.ILVIS2_V104_FIELDS = [('LFID', None, <class 'numpy.uint64'>), ('SHOTNUMBER', None, <class 'numpy.uint64'>), ('TIME', 1000000, <class 'numpy.uint64'>), ('CLON', 1000000, <class 'numpy.int64'>), ('CLAT', 1000000, <class 'numpy.int64'>), ('ZC', 1000000, <class 'numpy.int64'>), ('GLON', None, <class 'numpy.float64'>), ('GLAT', None, <class 'numpy.float64'>), ('ZG', None, <class 'numpy.float64'>), ('HLON', 1000000, <class 'numpy.int64'>), ('HLAT', 1000000, <class 'numpy.int64'>), ('ZH', 1000000, <class 'numpy.int64'>)]

//lvis.gsfc.nasa.gov/Data/Data_Structure/DataStructure_LDS202.html Note: Version 2.0.2b was used for Greenland 2017

Type:

See

Type:

https

nsidc.iceflow.data.ilvis2.ILVIS2_V202b_FIELDS = [('LFID', None, <class 'numpy.uint64'>), ('SHOTNUMBER', None, <class 'numpy.uint64'>), ('TIME', 1000000, <class 'numpy.uint64'>), ('GLON', None, <class 'numpy.float64'>), ('GLAT', None, <class 'numpy.float64'>), ('ZG', None, <class 'numpy.float64'>), ('HLON', 1000000, <class 'numpy.int64'>), ('HLAT', 1000000, <class 'numpy.int64'>), ('ZH', 1000000, <class 'numpy.int64'>), ('TLON', 1000000, <class 'numpy.int64'>), ('TLAT', 1000000, <class 'numpy.int64'>), ('ZT', 1000000, <class 'numpy.int64'>), ('RH10', 1000, <class 'numpy.int64'>), ('RH15', 1000, <class 'numpy.int64'>), ('RH20', 1000, <class 'numpy.int64'>), ('RH25', 1000, <class 'numpy.int64'>), ('RH30', 1000, <class 'numpy.int64'>), ('RH35', 1000, <class 'numpy.int64'>), ('RH40', 1000, <class 'numpy.int64'>), ('RH45', 1000, <class 'numpy.int64'>), ('RH50', 1000, <class 'numpy.int64'>), ('RH55', 1000, <class 'numpy.int64'>), ('RH60', 1000, <class 'numpy.int64'>), ('RH65', 1000, <class 'numpy.int64'>), ('RH70', 1000, <class 'numpy.int64'>), ('RH75', 1000, <class 'numpy.int64'>), ('RH80', 1000, <class 'numpy.int64'>), ('RH85', 1000, <class 'numpy.int64'>), ('RH90', 1000, <class 'numpy.int64'>), ('RH95', 1000, <class 'numpy.int64'>), ('RH96', 1000, <class 'numpy.int64'>), ('RH97', 1000, <class 'numpy.int64'>), ('RH98', 1000, <class 'numpy.int64'>), ('RH99', 1000, <class 'numpy.int64'>), ('RH100', 1000, <class 'numpy.int64'>), ('AZIMUTH', 1000, <class 'numpy.int64'>), ('INCIDENT_ANGLE', 1000, <class 'numpy.int64'>), ('RANGE', 1000, <class 'numpy.int64'>), ('COMPLEXITY', 1000, <class 'numpy.int64'>), ('CHANNEL_ZT', None, <class 'numpy.uint8'>), ('CHANNEL_ZG', None, <class 'numpy.uint8'>), ('CHANNEL_RH', None, <class 'numpy.uint8'>)]

Names of fields that contain longitude values. The values in these fields will be shifted to the range [-180,180).

nsidc.iceflow.data.ilvis2.ilvis2_data(filepath, coordinate_set='low_mode')

Return the ilvis2 data given a filepath.

Parameters:
Returns:

The ilvis2 (pandas.DataFrame) data.

Return type:

data

nsidc.iceflow.data.models module

class nsidc.iceflow.data.models.ATM1BDataset(**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: ATM1BShortName
class nsidc.iceflow.data.models.ATM1BSchema(*args, **kwargs)

Bases: CommonDataColumnsSchema

Parameters:
class nsidc.iceflow.data.models.CommonDataColumnsSchema(*args, **kwargs)

Bases: DataFrameModel

Parameters:
dataset: str | None
class nsidc.iceflow.data.models.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.data.models.GLAH06Schema(*args, **kwargs)

Bases: CommonDataColumnsSchema

Parameters:
d_DEM_elv: Series[float]
d_ElevBiasCorr: Series[float]
d_FRir_cldtop: Series[float]
d_FRir_intsig: Series[float]
d_GmC: Series[float]
d_RecNrgAll: Series[float]
d_SigBegOff: Series[float]
d_SigEndOff: Series[float]
d_TrshRngOff: Series[float]
d_TxNrg: Series[float]
d_beamAzimuth: Series[float]
d_beamCoelv: Series[float]
d_cntRngOff: Series[float]
d_d2refTrk: Series[float]
d_dTrop: Series[float]
d_deltaEllip: Series[float]
d_elev: Series[float]
d_eqElv: Series[float]
d_erElv: Series[float]
d_gdHt: Series[float]
d_isRngOff: Series[float]
d_kurt2: Series[float]
d_lat: Series[float]
d_ldElv: Series[float]
d_ldRngOff: Series[float]
d_lon: Series[float]
d_maxRecAmp: Series[float]
d_maxSmAmp: Series[float]
d_ocElv: Series[float]
d_ocRngOff: Series[float]
d_pctSAT: Series[float]
d_poTide: Series[float]
d_refRng: Series[float]
d_reflctUC: Series[float]
d_sDevNsOb1: Series[float]
d_satElevCorr: Series[float]
d_satNrgCorr: Series[float]
d_siRngOff: Series[float]
d_skew2: Series[float]
d_wTrop: Series[float]
class nsidc.iceflow.data.models.ILVIS2Schema(*args, **kwargs)

Bases: CommonDataColumnsSchema

ILVIS2 Data Schema.

Note that ILVIS2 data contain multiple sets of lat/lon/elev.

  • GLAT/GLON/GZ represent the center of the lowest mode in the waveform.

  • HLAT/HLON/HZ represent the center of the highest detected mode within the waveform. Both of these sets of lat/lon/elev are available across v1 and v2 ILVIS2 data.

ILVIS V1 data: * CLAT/CLON/ZC represent the centroid of the corresponding LVIS Level-1B waveform.

ILVIS V2 data: * TLAT/TLON/ZT, which represent the highest detected signal

Parameters:
class Config

Bases: object

add_missing_columns = True
class nsidc.iceflow.data.models.IceflowSearchResult(**data)

Bases: BaseModel

Parameters:

data (Any)

dataset: Dataset
granules: list[DataGranule]
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

property total_size_mb

nsidc.iceflow.data.read module

nsidc.iceflow.data.read.read_iceflow_datafile(filepath, ilvis2_coordinate_set='low_mode')

Read the given iceflow datafile.

Parameters:
  • filepath (Path)

  • ilvis2_coordinate_set (Literal['low_mode', 'high_mode', 'centroid', 'highest_signal'])

Return type:

Union[DataFrame[CommonDataColumnsSchema], DataFrame[ATM1BSchema], DataFrame[ILVIS2Schema], DataFrame[GLAH06Schema]]

nsidc.iceflow.data.read.read_iceflow_datafiles(filepaths, ilvis2_coordinate_set='low_mode')
Parameters:
  • filepaths (list[Path])

  • ilvis2_coordinate_set (Literal['low_mode', 'high_mode', 'centroid', 'highest_signal'])

Return type:

DataFrame[CommonDataColumnsSchema]

nsidc.iceflow.data.supported_datasets module

class nsidc.iceflow.data.supported_datasets.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.data.supported_datasets.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.data.supported_datasets.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.data.supported_datasets.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']