-
Notifications
You must be signed in to change notification settings - Fork 46
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
Add direction attribute for coordinate axis #247
Comments
With the huge caveat of me not knowing the many intricacies of projection systems... Would it make sense to extend the double y(y);
y:standard_name = "projection_y_coordinate";
y:positive = "north"
y:unit = "metre"
double x(x);
x:standard_name = "projection_x_coordinate";
x:positive = "east"
x:unit = "metre"
float Temperature(y, x);
Temperature:units = "K";
....
Temperature:grid_mapping = "Lambert_Conformal: x y"; |
@DocOtak, I don't think that there would be a problem will using |
If I understand this correctly, I think that in general one cannot specify a geographical direction for a projection coordinate, because (of course) the projection axes do not coincide with longitude and latitude axes. For example, in some grids, the positive x-direction might be both north and east at all points, but why would you say it was east rather than north? In other grids, the local direction will vary from point to point. You really need to differentiate the coordinates in geographical space to find the local direction, don't you? |
@JonathanGregory Most all projected coordinate systems are east-north aligned. The main questions are which component is which and which direction is positive. But your question points out the more difficult case of swath data where X and Y are not aligned to east and north. |
@snowman2 There is a long-standing use of the units 'degrees_north' and 'degrees_east' within CF that I think precludes making a change to using units of 'degrees' for latitude and longitude. It is used by some as a way to determine that a given variable is a latitude or longitude coordinate variable. |
Dear @JimBiardCics |
Adding excerpt from: http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#40
I think this adds clarity for some of the concerns raised by @JonathanGregory. Thoughts? |
@snowman2 I am generally opposed to this proposal as it stands. If we want to adopt some sort of convention about this sort of thing, I suggest it be something like what I've written below. For spatial coordinate systems, add an attribute named "fluffy" (this is a placeholder name — I'm unable to think of a good name yet) that will be added to each dimensional or auxiliary coordinate variable that declares the handedness of the coordinate system and declares which mathematical coordinate axis the variable is expressing. For a lat/lon/height coordinate reference system (CRS), the information contained in each attribute would be:
For a polar stereographic CRS, the information would be:
For a lat/lon/depth CRS, the information would be:
The values of the attribute "fluffy" above are not intended as the actual words. I'm trying to express the information that is required, but I haven't thought of what precise words should be used. If the use of X, Y, and Z above is bothersome, feel free to refer to i, j, and k or first, second, and third instead. Some of the information may seem wrong at first glance. I was surprised when I discovered a few years ago that the lat/lon/height coordinate system is formally a left-handed coordinate system. I had just assumed that putting latitude first was "merely" a historical practice that wasn't prescriptive. |
As far as the temporal axis goes, CF is quite strongly "future positive". It would take a lot of work to change this. I expect that the paleoclimate people would appreciate the ability to do "past positive" time coordinates that would use a (currently non-existent) calendar appropriate to their work, but I think that is wholly out of scope here. |
For horizontal coordinates, the CF |
So, are you saying that if we have:
Then, the direction of the |
Yes, that's right. From the preamble to sect 4 of the CF convention, "The attribute |
@snowman2 I don't think we can make that assumption, at least not in your example and as you've expressed it. There is no direct connection in your example between the lats and lons and the Xs and Ys. The connection of X with projection_x_coordinate and Y with projection_y_coordinate is pretty straightforward based on common sense, and on the statement in CF that, "X-Y-up should define a right-handed coordinate system, i.e. rotation from the positive X direction to the positive Y direction is anticlockwise if viewed from above." Following the same logic, longitude should be labeled as an X axis and latitude as a Y axis. |
The association of X and Y with latitude and longitude is a complicated and difficult topic. Here's a good article about the issue. https://wiki.osgeo.org/wiki/Axis_Order_Confusion Here's a summary and recap as I see it. Geodesy uses a left-hand mathematical coordinate system so that the lat,lon,height coordinate tuple order is X,Y,Z. This causes mental distress for many in other disciplines, so they say the mathematical coordinate system is right-handed and the coordinate tuple order is Y,X,Z. CF has followed the latter convention for latitude and longitude in terms of the association of the names X, Y, and Z with coordinates. Since we don't, in general, compose coordinate tuples in CF usage, we avoid part of the problem. OGC WKT specifies the order of coordinates in a CRS but doesn't assign X, Y, Z labels. It also allows each coordinate to specify positive direction. The handedness of the mathematical coordinate system is determined by inspection of order and positive direction. CF doesn't specify anything about the order or positive direction of coordinates in our Full automation of CRS transformations using a WKT CRS string is not possible because there are too many unknowns. In practical terms, some combination of the axis attribute and standard_name attribute values is sufficient to automate most cases. |
The last contribution to this issue was almost four years ago. I believe that the discussion shows that there is no need to add a further attribute, so I propose that the issue should be closed with the label |
I agree with Jonathan's proposal (immediately above). |
Thank you all for your time and consideration! |
Thanks for raising the issue, @snowman2! Happy 2024. |
Title
Add direction attribute for coordinate axis
Moderator
(Any takers?)
Moderator Status Review [last updated: YY/MM/DD]
???
Requirement Summary
http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#40
Add a direction for the coordinate system axis attributes to specify which direction the coordinate goes in. This is useful when building a coordinate system.
Technical Proposal Summary
Example:
This could also be used for latitude & longitude:
Instead of:
It could be:
Benefits
Would support more coordinate systems & be more explicit.
For example NORTH_POLE_EASTING_SOUTH_NORTHING_SOUTH or SOUTH_POLE_EASTING_NORTH_NORTHING_NORTH:
See axis maps here: https://pyproj4.github.io/pyproj/latest/_modules/pyproj/crs/coordinate_system.html
WKT form of coordinate sytem:
Status Quo
Currently only supported in the vertical coordinate:
http://cfconventions.org/cf-conventions/cf-conventions.html#vertical-coordinate
Detailed Proposal
Refer to above ^^
The text was updated successfully, but these errors were encountered: