# [SciPy-user] Units in SciPy

Robert Kern rkern at ucsd.edu
Fri Apr 1 18:11:59 CST 2005

```Duncan Child wrote:

> 3) Map Projections
>
> Describing lat lon data is harder because if you don't also specify the
> datum (effectively where you are assuming the center of the Earth is)
> your position can be miscontrued by 100s of meters. To convert from lat
> lon to xy you have to specify a bunch of parameters so this is trickier
> than converting something like meters to km. So I am not sure where this
> type of data fits in relation to the more usual conversions.

It's just an example of the most general kind of conversions: ones that
you have to code yourself. You would have two measurement systems
reified as smart objects, not just dumb tags. You can parameterize all
you like.

class LatLon(MeasurementSystem):
...

latlon = LatLon()

class MapProjection(MeasurementSystem):
...

class DatumShifted(MapProjection):
def __init__(self, datum):
...

x1 = quantity([35.94, -120.43], latlon)
x2 = quantity([35.31, -120.66], latlon)

In short, it's the same code you'd have to write anyways (and, in fact,
I've already written), but it fits into a framework that reduces the
amount of *interfaces* I have to write and think about and litter around
my code.

And with DatumShifted suitably implemented, you could do

y2 - y1

and get

quantity([-69880.73534289,-20899.29905468], meters)

--
Robert Kern
rkern at ucsd.edu

"In the fields of hell where the grass grows high
Are the graves of dreams allowed to die."
-- Richard Harter

```