-
Notifications
You must be signed in to change notification settings - Fork 16
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
Coordinate UX #11
Comments
I disagree with that list, as we also need the projection coordinates (
Sounds good to me to do the destaggering of coordinates at the same time as data variables.
In what little |
You're right, I was maybe a bit rash. What I meant was: if we decide to destagger, we don't need to keep the staggered variables. To me it is important to obtain clarity in the xarray API. The user should be able to see on a glance which coordinates the various diagnostics and data are on. For that we need the projection coordinates (if we're not in a lat/lon scenario). However, I think your PR makes good headway into this direction :)
Seconding the prioritization :) |
Maybe we should use #31 as a reason to discuss which coordinates we will have in the dataset at the end. For the time coordinate, e.g., information in The same goes for the spatial coordinates. I would suggest making dropping redundant information a rule. So if it were not too much hassle to compute on the fly, I would propose to keep What do you say to these suggestions? |
I just remembered this might also apply to data variables. For |
@lpilz: This sounds reasonable to me. |
That makes sense to me for this kind of one-dimension coordinate (so long as
I'd disagree with dropping latitude and longitude, however. While it is true that they can be re-generated (with careful handling of datums), it is not always trivial or cheap to compute, particularly with large/dense domains. Having both dimension coordinates and latitudes/longitudes is important for many workflows; a key example of this is projection-correct dynamical calculations (xref Unidata/MetPy#893), where you'll simultaneously need Also, generalizing from that, I don't think always "dropping redundant information" is a good rule. For example, this rule would mean
I think redundant data, so long as it is lazy-loaded, still has a place and would be appreciated by users. Perhaps a better rule would be "dropping redundant 0-D and 1-D information"? |
@jthielen: I think you've hit the nail on the head by pointing out that the data is lazy-loaded. With that in mind, I'm more in favor of not dropping anything unless it's presence creates a problem. I'm not even sure it's necessary to remove the redundant This is one of those things that seems to be an issue of "trying to guess what the user wants." And my experience over the years is that you should always assume that the user wants everything. So, I'm now of the opinion that we shouldn't drop anything unless it becomes a problem for us to keep it. |
@jthielen you are completely right regarding data variables. My point was mainly on coordinates, though. Here, I feel that we should not include too much information and keep My idea for how this could look when all features are implemented would be:
and
What do you say to these? @kmpaul if you really want to retain |
@lpilz: Yeah. If we can process the time-like dimensions into |
I think this is pretty straightforward as we just need the
lat
,lon
andtime
coordinates, all other can be discarded. Unstaggering will be done in the variable initialization. However, we should be aware of moving-nest runs and keep the time-dependence oflat
andlon
for these occasions.The text was updated successfully, but these errors were encountered: