nsidc.iceflow.itrf package¶
- nsidc.iceflow.itrf.check_itrf(itrf_str)¶
Check if the given string is a valid ITRF.
Based on a regex match. ITRF strings are conventionally “ITRF” followed by the 2-digit or 4-digit year (e.g., “ITRF93” or “ITRF2008”).
ITRFs prior to the 2000s conventionally used a 2-digit year (e.g., “ITRF88”).
ITRF2020 is recognized as “ITRF20”.
Submodules¶
nsidc.iceflow.itrf.converter module¶
- nsidc.iceflow.itrf.converter.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
]
nsidc.iceflow.itrf.plate_boundaries module¶
- class nsidc.iceflow.itrf.plate_boundaries.Plate(polygon, false_easting, name)¶
Bases:
tuple
- false_easting¶
Alias for field number 1
- name¶
Alias for field number 2
- polygon¶
Alias for field number 0
- nsidc.iceflow.itrf.plate_boundaries.plate_name(point)¶
Determine the Tectonic plate name based on the lon/lat of the given point. The point’s longitude (x) should be in the range [-180, 180], and latitude (y) in the range [-90, 90].
- nsidc.iceflow.itrf.plate_boundaries.shift_lon(x, y)¶