pylag.processing.coordinate module
The version of coordinate.py provided here is taken directly from the PyFVCOM library, which can be accessed via GitHub. It is copied here in order to minimise PyLag dependencies. The DOI for PyFVCOM is DOI: https://doi.org/10.5281/zenodo.1422462.
Utilities to convert from cartesian UTM coordinates to spherical latitude and longitudes.
This function uses functions lifted from the utm library. For those that are interested, the reason we don’t just use the utm utility is because it refuses to do coordinate conversions outside a single zone.
- pylag.processing.coordinate.british_national_grid_to_lonlat(eastings, northings)[source]
Converts British National Grid coordinates to latitude and longitude on the WGS84 spheroid.
- Parameters
eastings (ndarray) – Array of eastings (in metres)
northings (ndarray) – Array of northings (in metres)
- Returns
lon (ndarray) – Array of converted longitudes (decimal degrees)
lat (ndarray) – Array of converted latitudes (decimal degrees)
- pylag.processing.coordinate.check_valid_zone(zone_number, zone_letter=None)[source]
Check zone is valid
Implementation copied from the utm package. See https://github.com/Turbo87/utm.
- pylag.processing.coordinate.get_epsg_code(lon: float, lat: float, datum: Optional[str] = 'WGS 84') str [source]
Calculate EPSG code from longitude and latitude values
- pylag.processing.coordinate.get_zone_letter(latitude)[source]
Calculate the UTM zone letter from the given latitude. Shamelessly lifted from the utm.latitude_to_zone_letter function.
- pylag.processing.coordinate.get_zone_number(longitude, latitude)[source]
Calculate the UTM zone number from the given coordinate. Shamelessly lifted from the utm.lonlat_to_zone_number function.
- pylag.processing.coordinate.lonlat_decimal_from_degminsec(lon_degminsec, lat_degminsec)[source]
Converts from lon lat in degrees minutes and seconds to decimal degrees
- Parameters
lon_degminsec (Mx3 np.ndarray) – Array of longitude degrees, minutes and seconds in 3 separate columns (for M positions). East and West is determined by the sign of the leading non-zero number (e.g. [-4, 20, 16] or [0, -3, 10])
lat_degminsec (Mx3 np.ndarray) – Array of latitude degrees, minutes and seconds in 3 seperate columns (for M positions). North and South are determined by the sign of the leading number.
- Returns
lon (np.ndarray) – Array of converted decimal longitudes.
lat (np.ndarray) – Array of converted decimal latitudes.
- pylag.processing.coordinate.lonlat_decimal_from_degminsec_wco(lon_degminsec, lat_degminsec)[source]
Converts from lon lat in degrees minutes and seconds to decimal degrees for the Western Channel Observatory format (DDD.MMSSS) rather than actual degrees, minutes seconds.
- Parameters
lon_degminsec (Mx3 np.ndarray) – Array of longitude degrees, minutes and seconds in 3 separate columns (for M positions). East and West is determined by the sign of the leading non-zero number (e.g. [-4, 20, 16] or [0, -3, 10])
lat_degminsec (Mx3 np.ndarray) – Array of latitude degrees, minutes and seconds in 3 seperate columns (for M positions). North and South are determined by the sign of the leading number.
- Returns
lon (np.ndarray) – Array of converted decimal longitudes.
lat (np.ndarray) – Array of converted decimal latitudes.
- pylag.processing.coordinate.lonlat_from_utm(eastings, northings, epsg_code: str, zone=None)[source]
Converts UTM coordinates to lat/lon.
East Longitudes are positive, west longitudes are negative. North latitudes are positive, south latitudes are negative. Lat and Long are in decimal degrees.
- Parameters
eastings (object) – Eastings and northings. Can be single values or array like,
northings (object) – Eastings and northings. Can be single values or array like,
epsg_code (str) – The EPSG code for the utm transformation.
zone (str, optional) – DEPRECATED. Past means of specifying the UTM zone for the transformation that is no longer supported. If zone is passed in, a runtime error will be raised.
- Returns
lon, lat – Longitude and latitudes for the given eastings and northings.
- Return type
float, np.ndarray
- pylag.processing.coordinate.to_ndarray(x)[source]
Try to convert x to a NumPy NDArray
Support for strings, ints, floats, tuples and lists is included.
- Parameters
x (object) – The object to convert.
- Returns
The processed object transformed to a ndarray.
- Return type
ndarray
- Raises
PyLagTypeError is the object is not supported. –
- pylag.processing.coordinate.utm_from_lonlat(longitude, latitude, epsg_code: Optional[str] = None, zone=None)[source]
Converts lats and lons to UTM coordinates using pyproj
East Longitudes are positive, west longitudes are negative. North latitudes are positive, south latitudes are negative. Lats and lons are in decimal degrees.
The desired EPSG code can be found by searching websites such as epsg.io or spatialreference.org. If it is not provided, it will be calculated automatically from the first lon and lat values for the WGS 84 datum using the approach described here: https://tinyurl.com/aa83npwy.
Be careful when using this function for coordinates that span multiple zones as the transformation is specific to the specified EPSG reference system.
- Parameters
longitude (object) – Longitudes and latitudes. Can be a single value or array like.
latitude (object) – Longitudes and latitudes. Can be a single value or array like.
epsg_code (str, optional) – The EPSG code for the utm transformation.
zone (str, optional) – DEPRECATED. Past means of specifying the UTM zone for the transformation that is no longer supported.
- Returns
eastings, northings (numpy.ndarray) – Eastings and northings in the supplied reference system for the given longitudes and latitudes.
epsg_code (str) – The EPSG code for the utm transformation.