-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version2 #3
Version2 #3
Conversation
Bounds functionality seems to be generic computational geometry stuff, not related to geodesy per se.
* Move ellipsoid stuff into new file datums.jl * Removed XYZ type and all get* methods, since these will be replaced with something easier to use (hopefully!)
Progagated changes to datums through conversion. Removed default datum choice WGS84. Note: now use lower-case wgs84, etc
Also modified macros to work in this case.
A new interface for storing and transforming points with potentially complicated datums. CRS store the datum and co-ordinate type. Position includes this plus the values of the coordinates. geotransform() takes a Position and returns a new Position in the given CRS.
Errors for Bounds and its functions, and warnings for default datum choices (only on previously defined conversions).
Hey guys, I found some time to have a look at this. I really like having a CRS type, but I think the Position type should use a CRS as the template parameter. I'm worried we've shifted the CRS vs a point defined by a CRS notation problem, to a CS vs a point in a CS notation problem. I see this manifesting when we want to use an identifier for a CRS (an SRID) rather than the CRS itself. We don't want to have to know the CS and datum for it, just let libproj worry about what "stuff" the SRID actually describes behind the scenes. Maybe a better way to express the above is looking at the data structure picture, I don't think a point should be a subtype of a coordinate system, it should be something separate. My Julia fu is a little light understanding the CRS type; can you use a value type as the datum parameter? e.g. an ellipse instead of a tag for an ellipse? I'm not sure what that means for instantiating the datum field. I'm also hoping that at some point an Lastly, can we do Lon Lat order? |
Thanks Andrew. Regarding the (second) last point, as it is currently structured, I would have LLA{T <: Real}, etc, and that would flow through automatically to Position{LLA, Datum}, etc. In principle its a great idea, and in practice it makes things a little more wordy (think Complex{Float64} ::shudder:: ). I am thinking hard about what you say about coordinate systems vs coordinates vs SRID, etc, and hoping something sensible can be resolved. As a workaround, it should be easy enough to define functions that go from SRIDs to their datum and coordinate system types. That should facilitate loading from files. The datum could just be something Proj4 can interpret - even a Julia singleton. But the coordinate system has to at least know the number and types of coordinates, similarly as we need to know what to load from the file (is it a 3D position? A 2D map projection? Maybe one could imagine bundling UTM coordinates and their zone as an Int, or include a time coordinate? etc...) Lon-Lat or Lat-Lon? I dunno... I can see pluses and minuses. Perhaps two types, LatLon and LonLat, but what is LLA? Andy |
Let's move this discussion to JuliaGeo, it'll be lost otherwise. I hope I'll have time to make more in depth comments over there. My main concerns at the moment are
|
Updated interface for Geodesy.jl. Includes new
CRS
andPosition
types, which include possibly data-rich datums to assist in transformation viageotransform()
.