Re: 200046: basic topology and the Data Model with geo-locations

Hi Doug,

> OK, I am quite ignorant on the CoordinateSystem class. As I understand
> it, I can have one field with domain (lon, lat, alt) and another with
> (x,y,z) and they would work together if (x,y,z) were created with the
> appropriate CoordinateSystem mapping (x,y,z) to (lon, lat, alt). Am I
> close? Does that mean I could resample the first field with a set of the
> type (x,y,z)? What about a CoordinateSystem that would allow co-mingling
> of (lon, lat, alt) and (lat, lon, alt)? Am I missing the boat here? I'd
> sure like to be able to resample with different yet topologically
> consistent sets. And I'd like to be able to add my (x,y,z) field to my
> display with (Longitude -> XAxis)... maps without having to add (x ->
> XAxis)... maps.

Yes, it all works.  You can construct a Field with MathType:

  ((x, y) -> z)

and CoordinateSystem:

  (x, y) <--> (Latitude, Longitude)

[that is, a CoordinateSystem with reference (Latitude, Longitude)]

and display it with ScalarMaps:

  Latitude -> YAxis
  Longitude -> XAxis

You can also resample the Field to a set with MathType:

  set(Latitude, Longitude)

In fact, if you have another Field with MathType:

  ((u, v) -> w)

and CoordinateSystem:

  (u, v) <--> (Latitude, Longitude)

then you can add the two Fields.  The values of one will
be resampled to the sample locations of the other via their
common CoordinateSystem reference (Latitude, Longitude).

For the common reference to work, the order of Latitude
and Longitude must be consistent.  But you can control that
by defining appropriate CoordianteSystems.  You could even
define a CoordinateSystem for (Longitude, Latitude) with
reference (Latitude, Longitude).  It's toReference() and
fromReference() would just be permutations.

Cheers,
Bill
----------------------------------------------------------
Bill Hibbard, SSEC, 1225 W. Dayton St., Madison, WI  53706
hibbard@xxxxxxxxxxxxxxxxx  608-263-4427  fax: 608-263-6738
http://www.ssec.wisc.edu/~billh/vis.html