Units and Coordinates#
Utilities for working with different unit systems and coordinate frames.
Axis Units#
Classes for validating and working with coordinate axis units.
- class lagrangian.core.axis.LatitudeUnit#
Utility for working with latitude units.
- __init__(self: lagrangian.core.axis.LatitudeUnit) None#
Default constructor
Methods
__call__(unit): Check if unit string is a validlatitude unit
Examples
Validating latitude units:
import lagrangian.axis as axis lat_unit = axis.LatitudeUnit() # Check various unit strings print(lat_unit("degrees_north")) # True print(lat_unit("degree_north")) # True print(lat_unit("deg_N")) # True print(lat_unit("meters")) # False
- __call__(self: lagrangian.core.axis.LatitudeUnit, unit: str) bool#
Checks if the unit can define a latitude axis
- class lagrangian.core.axis.LongitudeUnit#
Utility for working with longitude units.
- __init__(self: lagrangian.core.axis.LongitudeUnit) None#
Default constructor
Methods
__call__(unit): Check if unit string is a validlongitude unit
Examples
Validating longitude units:
import lagrangian.axis as axis lon_unit = axis.LongitudeUnit() # Check various unit strings print(lon_unit("degrees_east")) # True print(lon_unit("degree_east")) # True print(lon_unit("deg_E")) # True print(lon_unit("radians")) # False
- __call__(self: lagrangian.core.axis.LongitudeUnit, unit: str) bool#
Checks if the unit can define a longitude axis
Unit Conversion#
- class lagrangian.core.units.Units#
Utility for unit conversion operations.
Methods
get_converter(from_unit, to_unit): Getconversion factor and offset
Examples
Converting between units:
import lagrangian.units as units # Get conversion from m/s to cm/s factor, offset = units.Units.get_converter("m/s", "cm/s") # Convert velocity: cm_per_s = m_per_s * factor + offset velocity_ms = 1.5 # m/s velocity_cms = velocity_ms * factor + offset # 150.0 cm/s
Common Unit Types#
The library supports several common unit types and coordinate systems:
Velocity Units
m/s: Meters per secondcm/s: Centimeters per secondkm/h: Kilometers per hourdeg/day: Degrees per day (for angular velocities)
Coordinate Units
degrees_north,degree_north,deg_N: Latitudedegrees_east,degree_east,deg_E: Longitudemeters,m: Metric distancekilometers,km: Metric distance
Time Units
seconds,s: Time in secondshours,h: Time in hoursdays,d: Time in days
Working with Different Coordinate Systems#
The library supports both Cartesian and spherical coordinate systems:
Cartesian Coordinates
Used for local, small-scale computations
Units typically in meters
x, y represent local coordinates
Spherical Equatorial Coordinates
Used for global ocean/atmosphere applications
Longitude/latitude in degrees
Accounts for Earth’s spherical geometry
Examples
Setting up fields with different coordinate systems:
import lagrangian
# Cartesian field (local coordinates)
cartesian_field = lagrangian.Field(
unit_type=lagrangian.UnitType.METRIC,
coordinate_type=lagrangian.CoordinatesType.CARTESIAN
)
# Spherical field (global coordinates)
spherical_field = lagrangian.Field(
unit_type=lagrangian.UnitType.ANGULAR,
coordinate_type=lagrangian.CoordinatesType.SPHERICAL_EQUATORIAL
)