Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2022-01-21 Thread JonathanGregory
Those changes look fine to me, thanks, David. The clarification is useful.


-- 
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-1018539726__;Iw!!G2kpM7uM-TzIFchu!n52Q_2vu2MgVKAgGbQHB2qrfDSyveZSnPwKbYTRh97A-h0kxaXmRX0O4K4sV4fCKzPFuKM9w7D4$
 
You are receiving this because you are subscribed to this thread.

Message ID: 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2022-01-21 Thread David Hassell
Dear Jonathan,

I have made some commits that hopefully make clearer the relationship between 
CF-netCDF mesh topology and location index variables, and CF data model Domain 
and Domain Topology constructs. What do you think?

https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/commit/3f9b4d53421f7da8c380c7e489e7713140edc60a?short_path=84395ff*diff-84395ffc95113b0c4c0cd22056e9b7461dc81bec9c89422b66c7b14f73d6c788__;Iw!!G2kpM7uM-TzIFchu!mykjhg-QqYXYxJn78C2m0SdkjwZ5T1TyvH175PbvbVeNaVOWAjxxlzvolSqOOCB_zUzEHYM2NBQ$
 

https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/commit/c401fae05d15f4aba7df1a2fe69163a8f00d389e?short_path=e4e016c*diff-e4e016c9bc64bd9cea792809a49d188836d6050352f0c24da156b896f8a3b6cf__;Iw!!G2kpM7uM-TzIFchu!mykjhg-QqYXYxJn78C2m0SdkjwZ5T1TyvH175PbvbVeNaVOWAjxxlzvolSqOOCB_zUzEBdX4gJY$
 

-- 
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-1018505924__;Iw!!G2kpM7uM-TzIFchu!mykjhg-QqYXYxJn78C2m0SdkjwZ5T1TyvH175PbvbVeNaVOWAjxxlzvolSqOOCB_zUzE8fWWLY4$
 
You are receiving this because you are subscribed to this thread.

Message ID: 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2022-01-21 Thread David Hassell
Dear Jonathan,

Thank you for your comments.

> In Appendix I (the data model), you describe the new CF-netCDF element as 
> "Domain(s) with cell connectivity" and the new CF construct as "Connectivity 
> of domain cells". I wonder if these should be the same.

Good point, In this case I think they should different, though. 

For instance, in the first new example in the new section 5.9 "Mesh Topology 
Variables" (which is adapted from 
https://urldefense.us/v3/__https://ugrid-conventions.github.io/ugrid-conventions/*2d-triangular-mesh-topology__;Iw!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9UEXFfeo$
 ) , the mesh topology variable `Mesh2` contains  nodes, edges and faces, each 
of which corresponds to a self-contained CF data model domain construct. I.e. 
this mesh topology variable represents three domains (in the data model sense 
of "domain"):

![image](https://urldefense.us/v3/__https://user-images.githubusercontent.com/8126576/150507209-3f4ceb2f-a76f-4cc7-99a9-9fa85caed283.png__;!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9cXv7eeE$
 )

(one domain for the 2 triangular faces, one for the 5 edges, and one for the 4 
nodes.)

By contrast, in the data model we still do not formally recognise the 
_inter_-domain connectivity (e.g. the relationship between edges and faces; or 
the relationship between stagger locations on an Arakawa grid), but the 
existing domain construct does require the new domain topology construct 
component to represent the _intra_-domain connectivity required by UGRID.

I feel that this distinction should be better illuminated in the appendix I 
text  ... I'll see how I can work that in.

> In ch01 there is an accidental "accidential".

Fixed (I'll push it up with the appendix I changes discussed above).

> I note that many of the changes in 
> https://urldefense.us/v3/__https://github.com/cf-convention/cf-convention.github.io/pull/210/files__;!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9DFg5Bug$
>   are concerned with respelling github as GitHub. It's fine to put that 
> right. In the unlikely event that this PR doesn't get accepted, we should 
> remember to do that anyway.

You're quite right. (I shouldn't really do that, but I got carried away during 
a spell check :))


By the way, I very recently found out that GitHub now has nice image comparison 
feature when you do a "rich diff" on an image file, that includes side by side, 
and overlayed views (e.g. 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/pull/353/files?short_path=5a70e4b*diff-5a70e4b347e2935d49b12cfaff78556fb70319f62762e966b1c82042f022d463__;Iw!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9bNStxFc$
  and 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/pull/353/files?short_path=e4e016c*diff-e4e016c9bc64bd9cea792809a49d188836d6050352f0c24da156b896f8a3b6cf__;Iw!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9w0HmcLo$
 ).

-- 
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-1018360298__;Iw!!G2kpM7uM-TzIFchu!i3j8zHRk_Fphfr-WluLHOEojaVLHa0uyJCSzU52a9pXQBkO_wevMDymzyrbrREaOM-U9h1AGcYs$
 
You are receiving this because you are subscribed to this thread.

Message ID: 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2022-01-20 Thread JonathanGregory
Dear @davidhassell 

Thanks for summarising the discussion up to now and writing the pull requests. 
As far as I know, this covers everything. The proposed changes look fine to me 
from a CF point of view. I noticed three small things:

* In Appendix I (the data model), you describe the new CF-netCDF element as 
"Domain(s) with cell connectivity" and the new CF construct as "Connectivity of 
domain cells". I wonder if these should be the same.

* In ch01 there is an accidental "accidential".

* I note that many of the changes in 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-convention.github.io/pull/210/files__;!!G2kpM7uM-TzIFchu!nGv4oHnK7P-nBQBeVRa-BOwc061GPhN2jyh0ER2XceyotMMWJKk7dTxgFuQ0IAB_YK2w9zkmYzY$
  are concerned with respelling github as GitHub. It's fine to put that right. 
In the unlikely event that this PR doesn't get accepted, we should remember to 
do that anyway.

Cheers

Jonathan

-- 
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-1017713484__;Iw!!G2kpM7uM-TzIFchu!nGv4oHnK7P-nBQBeVRa-BOwc061GPhN2jyh0ER2XceyotMMWJKk7dTxgFuQ0IAB_YK2wQr1B64A$
 
You are receiving this because you are subscribed to this thread.

Message ID: 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2022-01-20 Thread David Hassell
Hello all,

I have created a couple of pull requests to hopefully finally get UGRID into 
CF. I've not consulted anyone on the new text yet, so I fully expect some 
constructive comments! but I thought it a good idea to have something that we 
can discuss in less abstract terms.

I have copied the agreed procedure from  previous comments, and mapped them to 
new parts of the pull requests (one here and one over on 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-convention.github.io__;!!G2kpM7uM-TzIFchu!lOoPYeWtDSqIZQsKNctTh7mqIX59dfz39Aur1lMQnlR_AKsuhnoT2eRf4jNkNezdlbDu_Y5ms58$
 ).

Thanks,
David


### Procedure for incorporating UGRID into CF

1. UGRID will remain an independent convention, with independent governance.
 
Agreed.

2. Comprehensive conformance rules will be written up for UGRID.

   These will be maintained alongside UGRID in its repository, and referenced 
from (not copied into) the CF conformance document.

See PR #353 (conformance). The link to the UGRID conformance is a placeholder, 
as they are still being written.
 
3. The rules governing the evolution of CF will be modified to ensure that the 
CF conventions remain consistent with URGID.

Whilst UGRID will not be formally constrained by the CF conventions, it 
will be in everyone’s interest for UGRID changes to be evaluated for 
compatibility with CF, and vice versa. If desirable changes in one convention 
would require changes in the other convention, then such changes should be 
proposed to the other community and discussed together as part of a shared 
interest. Different time scales of evolution between the two standards are 
accounted for, as CF will only formally accept a named version (or versions) of 
UGRID and so is not necessarily obliged to support the latest version of UGRID 
(although that would generally be the expectation). In the very unlikely event 
that changes to UGRID can not be accepted by CF then it would be the time to 
merge the last set of accepted UGRID conventions into the actual CF document, 
from where the CF representation of unstructured grids would evolve 
independently to UGRID.

See PR 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-convention.github.io/pull/210__;!!G2kpM7uM-TzIFchu!lOoPYeWtDSqIZQsKNctTh7mqIX59dfz39Aur1lMQnlR_AKsuhnoT2eRf4jNkNezdlbDu1DY2Yv4$
  (Additional recommendations relating to UGRID)

4. A subsection will be added to CF section 1: Introduction to introduce UGRID 
and its purpose, to make clear its special synergy with CF, to remark on the 
appearance of attributes in CF appendices, and to say that it has its own 
conformance document which complements the CF conformance document.
 
See PR #353 (section 1)

5. The standardised UGRID attributes will be documented in the CF conventions, 
thereby making them visible to all users, and it will be mentioned in the CF 
governance rules that they need maintaining.

Only the UGRID attributes which can appear on data variables (currently 
`mesh`, `location` and `location_index_set`) should be added to CF appendix A: 
Attributes. All other UGRID attributes (such as those on mesh variables) should 
go into a new CF appendix specifically about the UGRID mesh topology variable. 
This would be like the treatment of the attributes of the grid mapping 
variable, which are in a table in CF appendix F: Grid Mappings, not in appendix 
A. (It is acknowledged that the geometry variable attributes appear in CF 
appendix A, but there are only five of them, whereas there are eighteen 
attributes of the mesh topology variable.)
 
See PR #353 (appendix A, appendix K)

6. Some text will be added to CF section 5.8: Domain Variables to explain the 
UGRID mesh topology variable and how it relates to a CF domain variable. It may 
be the case that the occasional note relating to UGRID would be useful in other 
sections.

See PR #353 (section 5). I took the approach of creating a new section (5.9 
Mesh Topology Variables) instead, which references the CF domain.

7. It will be decided whether or not UGRID fits into the existing CF data model 
(defined in CF appendix I: The CF Data Model), and if not then the CF data 
model will be extended to accommodate UGRID.

The understanding of interested parties from both the UGRID and CF 
communities coalesced on the need for a new CF data model construct that can 
make explicit the notion of a network topology for CF domain constructs.

See PR #353 (appendix I)
   

-- 
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-1017626734__;Iw!!G2kpM7uM-TzIFchu!lOoPYeWtDSqIZQsKNctTh7mqIX59dfz39Aur1lMQnlR_AKsuhnoT2eRf4jNkNezdlbDuwa7Jw2U$
 
You are receiving this because you are subscribed to this thread.

Message ID: 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will 

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-30 Thread Chris Barker
Thanks guys, i think I get in now -- the ocean basins example is a good one, I 
didn't really know what that meant the first time it was mentioned. "axis" it 
is :-)





-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-890001573__;Iw!!G2kpM7uM-TzIFchu!ljc5IpyrRiKWfFzPJJBn7bWUViqc-bLuMmly0RUboD6t2NdakqDYlYeWMUeDVW1h-PMofcuKB4E$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-30 Thread JonathanGregory
Dear Chris and David

I agree that UGRID uses a discrete axis. There isn't necessarily any ordering 
implied by such an axis, just as in the case of UGRID. For example, ocean 
basins or other geographical regions may be arranged along a discrete axis in 
any order.

Best wishes

Jonathan

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-889723508__;Iw!!G2kpM7uM-TzIFchu!gmsJ5n97suQ8Qv6JSDVPOtFN9OQ4i7t3fxcUq2w0hmV6LpYm56EByJ8f5D9rcHusEvYZJrIpD1Q$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-30 Thread David Hassell
Hi @ChrisBarker-NOAA,

This puzzled me for a bit, until I remembered that in the CF data model, DSGs 
are _not_  special. This is because what looks like a discrete axis in the 
encoding of a DSG is a really just a form of lossless packing for an orthogonal 
multidimensional array (with the data and coordinate arrays padded with missing 
data if required). This is indeed different to the UGRID mesh, as you rightly 
picked up on.

So bringing DSG's into this was misleading - sorry!

The [all that the CF data model says about 
DSGs](https://urldefense.us/v3/__https://cfconventions.org/cf-conventions/cf-conventions.html*_domain_axis_construct_and_the_data_array__;Iw!!G2kpM7uM-TzIFchu!kpIRMVftXZrAcR1WIvvNZ6ctbN1jxRTEXLA68dt7V_fuRrMa6_J0r1EyT1N_goBO3Cqr0opq5P4$
 ) is:

_When a collection of discrete sampling geometry (DSG) features has been 
combined in a data variable using the incomplete orthogonal or ragged 
representations to save space, the axis size has to be inferred, but this is an 
aspect of unpacking the data, rather than its conceptual description. In 
practice, the unpacked data array may be dominated by missing values (as could 
occur, for example, if all features in a collection of time series had no 
common time coordinates), in which case it may be preferable to view the 
collection as if each DSG feature were a separate variable, each one 
corresponding to a different field construct._

In my other examples (such as data stored on ocean basins) there is no 
assumption of (spatial) continuity, so I reckon that the CF data model discrete 
axis does apply to the UGRID case, after all.

Thanks,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-889701172__;Iw!!G2kpM7uM-TzIFchu!kpIRMVftXZrAcR1WIvvNZ6ctbN1jxRTEXLA68dt7V_fuRrMa6_J0r1EyT1N_goBO3Cqr1s8_kIw$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-29 Thread Chris Barker
thanks @JonathanGregory: that is better.

Final note on "axis" -- I think I'm being pedantic here, and it's probably bad 
to introduce new terms, but:

David wrote:

> A "discrete axis" in CF is one which does not correspond to a continuous 
> physical quantity, for example, this is the case for an axis that runs over 
> ocean basins or area types, or for a domain axis that indexes a time series 
> at scattered points. This also applies to the axis that stores the nodes of a 
> UGRID mesh.

Does it though?

> In many of these cases the discrete axis is sampling a higher dimensional 
> space, as you say. This where the "discrete sampling geometries" of chapter 9 
> get their name (I always imagine a ship sailing along a sinuous course and 
> recording SSTs at various time intervals). A domain that has such a discrete 
> domain axis construct can also have other domain axis constructs (such as 
> ones for time, level, etc.) which are indeed orthogonal to each other and to 
> the discrete axis.

In all of these examples, the axis may be "wandering around" in a higher 
dimensional space, but as noted, they are still orthogonal to others, and more 
critically, they represent a continuum of some sort. That is, where along the 
axis they lie is meaningful -- the fact that a value comes before or after 
another value, or is "next to" a value is meaningful. 

But in the case of a unstructured grid's node array, for instance, the order in 
which the node coordinates are in the array is completely (well, not 
completely, but ...) arbitrary. It is a mapping between a node index and the 
coordinates of that node, nothing more -- it could be completely re-ordered 
without its meaning changing. Which is why I don't think of it as an axis, even 
if it technically fits the definition.

But as I said, probably good enough, and I can't think of a better term.





-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-889300399__;Iw!!G2kpM7uM-TzIFchu!i2eIVZeGabCzH4ExsKvKNXNdu7uMRyewW_ZrajyYW6qm5tgx1n2Ije2xVYhT4Tx8M_z_er0a42c$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-29 Thread David Hassell
Dear @JonathanGregory,

Thanks for your comments.

> I think that "unlike" implies it's somehow inconsistent ...

Agreed. With your new text, that last paragraph becomes

In CF-netCDF a domain topology can only be provided for a domain defined by a 
UGRID mesh topology variable. In this case, the connectivity array is supplied 
by a UGRID connectivity variable, such as a "face_face_connectivity" variable. 
**The information represented by the symmetrical connectivity array of the 
domain topology construct in the CF data model is stored in a different but 
equivalent way in UGRID. The trailing dimension of a UGRID connectivity 
variable's data records, for each cell, the indices of the other cells to which 
it is connected (padded with missing data if a cell has fewer connections than 
some others).**

> What role do the edge coordinates have in the domain which refers to the 
> faces?

That sounds like the right question, and I think the answer is "none", which 
clarifies for me that [my initial concern about 
"round-tripping"](https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-887768641__;Iw!!G2kpM7uM-TzIFchu!npi0cAUkgsn2Aau2vThp0Uhvt3R2ZkQ5Duq3d1Q2HjJBF0MPtxOnQg8tCC3OtvWiMdmZzePrWEk$
 ) is not actually relevant, here. How a software implementation decides, when 
writing multiple fields to a file, to avoid the duplication and proliferation 
of domain-related netCDF variables is up to it, as it always has been.

All the best,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-889263224__;Iw!!G2kpM7uM-TzIFchu!npi0cAUkgsn2Aau2vThp0Uhvt3R2ZkQ5Duq3d1Q2HjJBF0MPtxOnQg8tCC3OtvWiMdmZi84W30Y$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-29 Thread JonathanGregory
Dear Chris and David

Thanks for this discussion.

In David's revised text

> Unlike the domain topology construct's connectivity array, a
> UGRID connectivity variable's data is not stored as a symmetric matrix that
> indicates the connectivity between any two cells. Instead, the trailing
> dimension of ...

I think that "unlike" implies it's somehow inconsistent. I would suggest
something like, "The information represented by the symmetrical connectivity
array of the domain topology construct in the CF data model is stored in a
different but equivalent way in UGRID. The trailing dimension of ..."

David wrote, "If there are edge coordinates as part of a mesh with faces ...
the edge coordinates can only be represented by the CF data model in a second
domain that comprised 1-d cells defining each edge and how it's connected to
others." What role do the edge coordinates have in the domain which refers
to the faces?

Best wishes

Jonathan


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-888999726__;Iw!!G2kpM7uM-TzIFchu!lJmFpLOcoHlaxoUh2SugObq1husFhqGkHu-34GeVsR4zLk-aG3zmozZG6FqkplKpaYXTPyOOlBs$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-28 Thread David Hassell
Hi @ChrisBarker-NOAA,

> The whole concept of an "axis" matches orthogonal coordinates of some sort. 
> (that's kind the definition of orthogonal, yes?). Mapping a Ugrid to the real 
> world, the real world is 2D (Or 3D, but let's not go there yet) -- and that 
> 2D world has 2 orthogonal axis -- X, Y, Lat, Long, whatever. So a mesh 
> represents a 2D space -- but I wouldn't say it has two axes, or a 1-d 
> discrete axis either, ir is simply something else. Or "axis" means something 
> different in this context than I think it does.

I hope I can clear this up a bit ... A "discrete axis" in CF is one which does 
not correspond to a continuous physical quantity, for example, this is the case 
for an axis that runs over ocean basins or area types, or for a domain axis 
that indexes a time series at scattered points. This also applies to the axis 
that stores the nodes of a UGRID mesh. In many of these cases the discrete axis 
is sampling a higher dimensional space, as you say. This where the "discrete 
sampling geometries" of chapter 9 get their name (I always imagine a ship 
sailing along a sinuous course and recording SSTs at various time intervals). A 
domain that has such a discrete domain axis construct can also have other 
domain axis contructs (such as ones for time, level, etc.) which are indeed 
orthogonal to each other and to the discrete axis.

> That means there could be separate definitions, or data variables could share 
> the same one, yes? If, for instance, multiple variables in the same file are 
> on the same mesh, they share a single domain definition, yes?

Yes. Ish. Say we have two data variables in a file (temperature and 
precipitation, say) that are both defined on the faces of the same mesh. The CF 
data model currently views all field constructs (i.e. data variables in this 
context) as independent entities, so each of the resulting two field constructs 
would contain its own domain, and those domains can only, in the data model 
world, be seen to be equal by inspection. This is different to the [ISO 19123 
coverage 
model](https://urldefense.us/v3/__https://www.iso.org/obp/ui/*iso:std:iso:19123:ed-1:v1:en__;Iw!!G2kpM7uM-TzIFchu!mKc8eKpI4oK_LVEInhm9uLhMqlotAzTZUKB3NH_XFq73vfIuwCvkKsmkysbNhqFoCYv7fWY7bT0$
 ) that allows for multiple "features" (i.e. data variables) to be defined at 
common locations (this is discussed [section 5.1 of the CF data model GMD 
paper](https://urldefense.us/v3/__https://gmd.copernicus.org/articles/10/4619/2017/gmd-10-4619-2017.pdf__;!!G2kpM7uM-TzIFchu!mKc8eKpI4oK_LVEInhm9uLhMqlotAzTZUKB3NH_XFq73vfIuwCvkKsmkysbNhqFoCYv7lNzAYhM$
 )). CF has always had this feature (problem?), even with traditionally defined 
domains. We're back in SGRID territory here - and one day the CF conventions 
will formalise domain sharing and linked domains, but until then we're stuck 
with this theoretical independence. I don't think that this is in any way a 
blocker for the integration of UGRID into CF, though. Your software can 
explicitly share domains in the ISO 19123 vein if it wants to.

> That makes sense but the language I first noticed said a "symmetric array" -- 
> I think we need to be careful about the abstraction of a symmetric matrix and 
> the realization of an "array" in code, or a netcdf file, or ... And it needs 
> to be clear that it's a abstract (sparse) boolean matrix, rather than an 
> actual array (necessarily).

I hear you, but would like to keep "array", as that is used in the same context 
throughout the data model description. I think we can improve things by 
explicitly noting the difference between logical representation and encoding in 
the text (changes in **bold**, I've also made a few other changes mentioned 
above). How's this?


### Domain topology construct

A domain topology describes the connectivity of domain cells indexed by a 
subset of the domain axis constructs. When two cells are connected, operations 
on the data stored on them may be assumed to be continuous across their common 
boundary. A domain topology construct describes logically and explicitly the 
domain topology of cells indexed by a single domain axis construct. A domain 
topology construct contains a connectivity array that spans a single domain 
axis construct with the addition of an extra dimension of the same size, such 
that each dimension indexes the cells. The array is symmetrical, and each 
element indicates whether the pair of cells to which its indices refer are 
connected. **The connectivity of a cell to itself is undefined, so the diagonal 
elements of this array are ignored**. A domain construct may contain at most 
one domain topology construct.

For any subset of the domain axis constructs, excluding a domain axis construct 
for which there is a domain topology construct, there is an implicit domain 
topology that is defined by a function of the physical contiguousness of the 
cells, and/or the nature of the real world or simulated processes that produced 
the 

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-27 Thread Chris Barker
I think I'm (slowly) getting this, but a few thoughts on language:

"the CF data model is independent of the encoding, and the symmetric matrix is 
logically what is going on here."

That makes sense but the language I first noticed said a "symmetric array" -- I 
think we need to be careful about the abstraction of a symmetric matrix and the 
realization of an "array" in code, or a netcdf file, or ... And it needs to be 
clear that it's a abstract (sparse) boolean matrix, rather than an actual array 
(necessarily).

"The nodes (i.e. bounds) and edges do not have an independent existence - they 
are elements of the CF cell definition. The new domain topology construct makes 
explicit the cell connectivities."

That makes sense -- that is the whole point after all :-)

" A "domain axis" is essentially a dimension of the domain. We restrict the new 
domain topology constructs to apply to a single domain axis simply because 
there is no current way of encoding a domain topology construct that applies to 
multiple domain axes. UGRID only describes a mesh with a 1-d discrete axis."

Now I'm getting confused again -- I think this is (at least in my head) a 
result of a fundamental mismatch between orthogonal meshes and unstructured 
meshes. The whole concept of an "axis"  matches orthogonal coordinates of some 
sort. (that's kind the definition of orthogonal, yes?). Mapping a Ugrid to the 
real world, the real world is 2D (Or 3D, but let's not go there yet) -- and 
that 2D world has 2 orthogonal axis -- X, Y, Lat, Long, whatever. So a mesh 
represents a 2D space -- but I wouldn't say it has two axes, or a 1-d discrete 
axis either, ir is simply something else. Or "axis" means something different 
in this context than I think it does.

"separate domain definitions for each data variable is an appropriate view for 
the CF data model. "

That means there *could* be separate definitions, or data variables could share 
the same one, yes?  If, for instance, multiple variables in the same file are 
on the same mesh, they share a single domain definition, yes?

Thanks for taking the time to educate me!


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-887925192__;Iw!!G2kpM7uM-TzIFchu!l25fGL1Spt51msDlCyYHO35_-m5A_TRr12eoj7ksr2j_Dqr1L0uiRCmDLxF85lyapYwtjoW2xeY$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-27 Thread David Hassell
Hi @ChrisBarker-NOAA and @pp-mo,

I have been away and am just catching up with the conversation. Thank you for 
an interesting read!

> From the data model perspective, there needs to be SOME way to define the 
> connectivity. how it's done is a matter of the "encoding", yes?

Absolutely.

Patrick's description of symmetry 
(https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-882630042__;Iw!!G2kpM7uM-TzIFchu!lbgXr2bG5DfZVu02KjCqJBqYJUd461YJXHy_PUxq-1YQYcmNceBLkbAVeW4u6ezxu6cK3041iWg$
 ) is right - it is symmetric in the square matrix sense. This is indeed not at 
all how UGRID actually encodes this information, but the CF data model is 
independent of the encoding, and the symmetric matrix is logically what is 
going on here. Whilst there is no expectation that anyone should encode it in 
this manner, it is tempting (to me!) because the square connectivity matrix can 
be easily updated in subspacing operations.

It's a good point about what to do on this matrix's diagonal - I think that the 
option of these values having 'no meaning regardless of value' is sufficient 
for the data model. Whether you use booleans, integers, strings, etc. to denote 
connected/not connected is entirely an encoding choice and has no impact on the 
data model.


>  we really do need to capture the concept that the mesh is not unrelated 
> pieces, it is one thing -- you can't really know what any of the data fully 
> means without the full mesh description.

> (2) likewise, the CF description has no place for the cross-location 
> connectivities (like face-edge-connectivity)

The CF model does connect (e.g.) faces with edges and nodes, but in  a 
different manner to UGRID. In CF, a "cell" is typically defined as the "space" 
enclosed by bounds, and the edges of the cell are the connections between 
adjacent cell bounds. This space may be 0-d, in which case it is just a "node"; 
or 1-d, in which case it is an "edge" connecting two "nodes"; or 2-d, in which 
case it is a "face" defined by "edges" and "nodes"; (etc, but we don't 
generalise to 3-d and beyond, yet). The nodes (i.e. bounds) and edges do not 
have an independent existence - they are elements of the CF cell definition. 
The new domain topology construct makes explicit the cell connectivities.


> (1) Firstly, a UGRID mesh with multiple locations relates to multiple 
> domain-axes in CF
That can "work", because any data-variable can only reference one of them, as 
described :
> 
> > we have no use case for two or more topology constructs, each of which 
> > applies to a single unique domain axis, and in fact we have no way of 
> > encoding it, so that case should indeed be excluded.
> 
> So, the CF 'topology construct' can only be atttached to a single domain axis 
> of a domain.
> That means that UGRID data which maps to a different mesh location is 
> modelled as belonging to a separate, independent "domain".
> This seems okay for now, but it means of course that the CF decsription has 
> no concept of the intercoupled nature of the different locations.

Yes. A CF field construct contains a domain that is limited to describe just 
the parent field's data. Although, be careful not to confuse "domain axis" and 
"domain". A "domain axis" is essentially a dimension of the domain. We restrict 
the new domain topology constructs to apply to a single domain axis simply 
because there is no current way of encoding a domain topology construct that 
applies to multiple domain axes. UGRID only describes a mesh with a 1-d 
discrete axis. If this ever changed, it would be described by a simple 
generalisation of the data model text. The CF data model mustn't provide 
capabilities that are not allowed by the CF conventions.

If there are no data variables in a file - i.e. just the mesh is stored in a 
dataset - then the entire mesh  definition is captured by a CF domain 
construct. However, if one or more a data variables are defined on the mesh, 
then their CF domains are only allowed to be those elements of the mesh that 
are in use. For example, if a temperature variable is stored on faces and a 
U-wind is stored at nodes, then the domain of the former will include the UGRID 
faces, edges and nodes, but the domain of  the latter will only know about the 
nodes. In both cases, a connectivity matrix will retain the required 
connectivities.  

I just wrote _"If there are no data variables in a file - i.e. just the mesh is 
stored in a dataset - then the entire mesh  definition is captured by a CF 
domain construct."_, however I realise that that's not necessarily the case if 
there are edge coordinates as part of a mesh with faces. In this case, the edge 
coordinates can only be represented by the CF data model in a second domain 
that comprised 1-d cells defining each edge and how it's connected to others. I 
can't decide right now if this is a problem for the data model (i.e. should 
edge coordinates be a new feature of 

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-21 Thread Patrick Peglar
> From the data model perspective, there needs to be SOME way to define the 
> connectivity. how it's done is a matter of the "encoding", yes?

Yes, that is what I was "trying" to say !


> ?? -- but does X connect to Y is the key concept we are trying to capture 
> here.
>  in "lay" terms, I might say something like: ...

All agreed, absolutely
I was just trying to express that I think the two descriptions **_are_** 
compatible, and in fact basically mean the same thing.


I **_think_** the key point is that how UGRID actually organises things (what I 
termed "encoding") is **_not_** the same terminology in which the CF datamodel 
description is decribed.  
So, we do need to be confident that they are _equivalent_, but that also means 
exploring the  rules and constraints which are part of the description (on 
either side of the fence).

If I read correctly what has been said here ...
The CF datamodel only states that the connectivity relation must be symmetrical 
: "If A connects to B, then B connects to A".
It also describes such relations only on one "domain axis". 

My ouststanding concern is that UGRID does define additional information 
structures (and governing "rules") which the CF 'domain' model has no interest 
in.

(1) Firstly, a UGRID mesh with multiple locations relates to multiple 
domain-axes in CF 
That can "work", because any data-variable can only reference **_one_** of 
them,  as described :
> we have no use case for two or more topology constructs, each of which 
> applies to a single unique domain axis, and in fact we have no way of 
> encoding it, so that case should indeed be excluded.

So, the CF 'topology construct' can only be atttached to a single domain axis 
of a domain.
That means that UGRID data which maps to a different mesh location is modelled 
as belonging to a separate, independent "domain".
This seems okay for now, but it means of course that the CF decsription has no 
concept of the intercoupled nature of the different locations.

(2) likewise, the CF description has no place for the cross-location 
connectivities (like face-edge-connectivity)

So, I'm not sure where any of that might become practically relevant, but I'm 
still a little worried that they aren't really describing the same ideas with 
the same range of possibilities.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-884008101__;Iw!!G2kpM7uM-TzIFchu!heMcp7OrldjJzmI0l-rXlmXX4p2RCrOo9OpiNkaQZTwht7eRpskqRdQyuPdtJH2KB__v_BpyEc0$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-20 Thread Chris Barker
> Looking at it again, from the viewpoint of actual UGRID connectivity data,
that does make the 'does X connect to X' question seem a rather abstruse and 
unimportant.

?? -- but does X connect to Y is the key concept we are trying to capture here.

>From the data model perspective, there needs to be SOME way to define the 
>connectivity. how it's done is a matter of the "encoding", yes? 

>  that basic graph theory is written in terms like these.

I'll take your work for it :-) But in "lay" terms, I might say something like:

"""
The connectivity arrays capture how the individual component of the mesh relate 
to each other. For example, for the face-face connectivity, each face has N 
neighbors (where N is the order of the cells, e.g. triangles are N=3). So for 
each face, the indexes of the three connecting faces is provided, resulting in 
a num_faces X N array. Note that there is duplication where there is symmetry: 
that is, if face i connects to face j, face j connects to face i.
"""
For the most trivial example of a two-triangle mesh, you would have, for the 
face-face connectivity:

```
[[-1, -1, 1],  # face 0 connects only to face 1
 [-1, -1, 0],  # face 1 connects only to face 0
]
```
where -1 means "nothing" and the faces are zero indexed.

So that those two array entries have dublicative information, representing the 
symmetry

NOTE: I realised as I was writing that that the encoding does not have to be 
duplicative and symmetric. We tend to store it that way because it's easy to 
ask the question:"what are the neighbors of face i?" -- but we could only store 
the connections, which would make it harder to interpret, but easy to encode 
without duplication. The above two-face mesh would simply be:

[[1, 0]]

that is: face one connects to face zero. (and therefor face zero connects to 
face 1 as well)

In fact, in UGRID, the "edges" connectivity is described exactly like that.



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-883550731__;Iw!!G2kpM7uM-TzIFchu!lfKIbGIvZOfhrO6mqfawl6sUjsh9rY0h93P2SjKe2WjT-sCh_-Oh8FGaUW6uAnxaLB6G1Lq7qLE$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-19 Thread Patrick Peglar
> It sounds like we agree that the domain could have multiple topologies (as 
> opposed to topology constructs). It's a good point that we have no use case 
> for two or more topology constructs, each of which applies to a single unique 
> domain axis, and in fact we have no way of encoding it, so that case should 
> indeed be excluded.

As with @ChrisBarker-NOAA , I'm not truly confident that I know what this 
really means + intends.

However, another thing that has been bothering me in this, is a possible lack 
of "symmetry" in the relationship between the CF and UGRID views of these 
definitions.  
In UGRID, what we might call the "reflexive" connectivities, i.e. face-face / 
edge-edge / node-node, are only a _part_ of the possible information -- but 
with the current statement, it seems that these are the **_only_** part of it 
that the CF datamodel will concern itself with.  
So, as this only constrains (or describes) properties of a _part_ of the UGRID 
information, I'm a bit worried if this could be an omission -- which in turn 
could require further amendments at some future time ?

If I've understood the above, then it means we are also proposing a limited 
_type_ of "topology constructs" : that only relates one of (possibly multiple) 
toplogies to itself.  
In which case... what is being "excluded" is (a) any more than one 
topology-construct, defined on a given domain, and also (b) any (hypothetical) 
topology-construct that would carry a relationship between two _different_ 
topologies of a domain.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-882641160__;Iw!!G2kpM7uM-TzIFchu!hUQFGCaTweQZzDhEFeXyOCF-ZM4yCAdi1HdMhZp-d-msusDGMdf9kT9XXJ3IUn35aoT6DXvVkYs$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-16 Thread JonathanGregory
Dear David

It's a good point that there may be domain axes which aren't involved in the 
topology. Thanks for the correction. We can supply a ?? topology construct 
provided it refers to a single domain axis (the UGRID case). I'm not sure there 
would be more than topology for a domain, although I agree it's conceivable, 
but I think that's in the realm of speculation, since we don't currently have a 
use-case for describing the situation with more than one domain axis involved 
in the topology.

Best wishes

Jonathan


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-881400525__;Iw!!G2kpM7uM-TzIFchu!jKWZ51HoixEz5djWST4YyfJngt2th3x9y2FGQIgn80lQhtMEjv9yHgvcepMu-iXIBxJkpC0NN7c$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-15 Thread Chris Barker
@davidhassell:

Thanks! this looks good to me. 

Am am curious why you chose "network topology" rather than "mesh topology" -- 
I"m not sure it matters much but at least that wikipedia article is pretty 
focused on the topology of communication networks which is pretty similar, but 
not quite.

On the other hand, "mesh topology" is used for computer networks 
(https://urldefense.us/v3/__https://www.computerhope.com/jargon/m/mesh.htm__;!!G2kpM7uM-TzIFchu!m0ctAe0cUVBEF_t4HBNY8OlXwmbUA3GUCl--BUxUGY5YFNQtVbK-_lz7bnjgYaE0QwYIii3FrK4$
 ) 

I have no idea if there's a standard term for what we mean in this case, but 
modeling folks do use teh term "mesh" or "grid" in this context, and I've never 
heard anyone use the term "network".

Though the GIS folks use "Triangulated Irregular Network" 
(https://urldefense.us/v3/__https://en.wikipedia.org/wiki/Triangulated_irregular_network__;!!G2kpM7uM-TzIFchu!m0ctAe0cUVBEF_t4HBNY8OlXwmbUA3GUCl--BUxUGY5YFNQtVbK-_lz7bnjgYaE0QwYIJzB7bx8$
 ) -- maybe that's where "network" came from? 

The computer graphics folks use: "Triangle mesh" 
(https://urldefense.us/v3/__https://en.wikipedia.org/wiki/Triangle_mesh__;!!G2kpM7uM-TzIFchu!m0ctAe0cUVBEF_t4HBNY8OlXwmbUA3GUCl--BUxUGY5YFNQtVbK-_lz7bnjgYaE0QwYIgNZ3RWk$
 )

So there's president for that, too.





-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-880950086__;Iw!!G2kpM7uM-TzIFchu!m0ctAe0cUVBEF_t4HBNY8OlXwmbUA3GUCl--BUxUGY5YFNQtVbK-_lz7bnjgYaE0QwYI9xf65sc$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-15 Thread David Hassell
Hello @ChrisBarker-NOAA and all,

After some very illuminating discussion over at 
https://urldefense.us/v3/__https://github.com/ugrid-conventions/ugrid-conventions/issues/52__;!!G2kpM7uM-TzIFchu!gsrPpUHyBO1L3RCLlnbI4ykGpE8GyFUQGCnBa97TVwjO6tJnc_z4tfusXiad6JE3NXdsbwwppNw$
 , and some offline discussions, @JonathanGregory and I have come up with some 
suggested text to the data model in [Appendix 
I](https://urldefense.us/v3/__https://cfconventions.org/cf-conventions/cf-conventions.html*appendix-CF-data-model__;Iw!!G2kpM7uM-TzIFchu!gsrPpUHyBO1L3RCLlnbI4ykGpE8GyFUQGCnBa97TVwjO6tJnc_z4tfusXiad6JE3NXdsLhQqXgs$
 ) that we hope will update the CF data model for the mythical connectivity.

The new text is hopefully self-explanatory and edits the "Domain construct" 
section of Appendix I (edits in italics) and provides a new section describing 
a new construct type - the "network topology construct". Here we are using 
"network topology" in [this 
sense](https://urldefense.us/v3/__https://en.wikipedia.org/wiki/Network_topology__;!!G2kpM7uM-TzIFchu!gsrPpUHyBO1L3RCLlnbI4ykGpE8GyFUQGCnBa97TVwjO6tJnc_z4tfusXiad6JE3NXdsctCuFWE$
 ), but there may well be better names.

Remember that the CF data model is a logical data model that is independent of 
the encoding, so it not a problem that  the connectivity array  does not look 
like a UGRID netCDF connectivity variable. 
 
(I took the liberty of rearranging some the network topology text after 
Jonathan last saw this - I take full responsibility for any negative 
consequences.)



### Domain construct

The domain construct (figure 3) describes a domain comprising measurement 
locations and cell properties. The domain construct is the only metadata 
construct that may also exist independently of a field construct. The domain 
construct contains properties to describe the domain (in the same sense as for 
the field construct) and relates the following metadata constructs

  * Domain axis constructs.
  * Dimension coordinate and auxiliary coordinate constructs.
  * Coordinate reference constructs.
  * Domain ancillary constructs.
  * Cell measure constructs.
  * _Network topology constructs._

All of the constructs contained by the domain construct are optional (as 
indicated by "0.." in figure 3).

In CF-netCDF, domain information is stored either implicitly via data variable 
attributes (such as coordinates), or explicitly in a domain variable, _or a 
UGRID mesh topology variable. In the latter two cases_, the domain exists 
without reference to a data array.

### Network topology construct

A network topology describes the connectivity of cells of domain indexed by a 
subset of the domain axis constructs. When two cells are connected, operations 
on the data stored on them may be assumed to be continuous across their common 
boundary. A network topology construct describes logically and explicitly the 
network topology of cells indexed by a single domain axis construct. A network 
topology construct contains a connectivity array that spans a unique domain 
axis construct with the addition of an extra dimension of the same size, such 
that each dimension indexes the cells. The array is symmetrical, and each 
element indicates whether the pair cells to which its indices refer are 
connected.

A network topology that has no corresponding network topology construct, which 
includes those for multiple domain axis constructs, is nonetheless implicitly 
defined by a function of both the physical contiguousness of the cells, and the 
nature of the real world or simulated processes that produced the data. For 
example, in a field which contains both land and ocean cells, connections 
between land and ocean cells might be excluded for some physical processes.The 
description of such an implicit network topology may require metadata that is 
external to CF.

In CF-netCDF a network topology can only be provided for a domain defined by a 
UGRID mesh topology variable. In this case, the connectivity array is supplied 
by a UGRID connectivity variable (such as a "face_face_connectivity" variable).



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-880923765__;Iw!!G2kpM7uM-TzIFchu!gsrPpUHyBO1L3RCLlnbI4ykGpE8GyFUQGCnBa97TVwjO6tJnc_z4tfusXiad6JE3NXdsqqsaF5E$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-01 Thread David Hassell
Dear Patrick,

Thank you for bringing up "location index set" variables. I agree that in the 
absence of the `cf_role` attribute it is not always possible to distinguish one 
from data variable, so I would be happy with retaining it on these variables.

By extension, I think that we should drop the suggestion (it is just that at 
this stage) of removing `cf_role` from the mesh topology variable. This is 
because a location index set variable is logically identical to a mash 
variable, so having a common mechanism of identification would be nice. 

> ( This problem is entirely analogous to an existing problem with 
> auxiliary-coordinates in standard CF : If the data-variable which references 
> them is removed, then they are not distinguishable from data-variables -- so 
> they "become" data-variables )

I wouldn't call this a problem, rather a feature! When we read a dataset, we 
tend to not cast variables that have been identified as auxiliary coordinates 
(or other roles) as data variables _as well_, but that is only a default 
behaviour that is what most of want most of the time.  

All the best,
David


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-872289997__;Iw!!G2kpM7uM-TzIFchu!m3MvmAJbcTaPU6Ztlb1aEbCnoUt3-uDR3R1pG6HQ9fufA_aTTj_7DV37GTYArWT6nxp6IECmCAg$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-07-01 Thread Patrick Peglar
Hi, sorry to be late to the table with this issue, but I have been listening in 
here a while, in hopes of understanding better and maybe contributing.

I think that I may have spotted a potential problem with the removal of 
'cf_role' :
As stated (above), the role of a mesh-variable is identifiable by its having a 
'topology_dimension' attribute, but **_the same is not true of a 
location-index-set_** :  
So, if we include an index set in a "mesh only file" (aka "meshfile" or 
"gridfile" in some quarters), then we will be unable to distinguish it from a 
data-variable.
This in turn implies that when loading a file, we would need to "know" whether 
it was intended to be a "mesh file" or a "normal datafile" as you can't 
determine that by inspection. 

( This problem is entirely analagous to an existing problem with 
auxiliary-coordinates in standard CF :  If the data-variable which references 
them is removed, then they are not distinguishable from data-variables -- so 
they "become" variables )

Our context : Here at the UK MetOffice, we are working to support unstructured 
data within Iris, [using UGRID as the template for our internal 
data-model](https://urldefense.us/v3/__https://scitools-iris.readthedocs.io/en/mesh-data-model/generated/api/iris/experimental/ugrid.html__;!!G2kpM7uM-TzIFchu!gI2poPff_xwfIpnQMVw6F_zs4v2r3s3F4jWKcIS2Wef7scNBlJ8EEWlts5nRZ3b4KwzlqWjLQmM$
 ) (as we already do for CF).
Locally, we have a particular interest in the use of location-index-sets, and 
we are also intending to use "mesh files" i.e. files with only the mesh 
structure and no data.

Also, our practical experience in tools development and support shows that 
files that do not fully comply with conventions are, sadly, just not that 
uncommon even in the respected international archives.
Thus, just as Iris has to somehow handle files with invalid standard-names and 
units, or mis-specified grid-mappings, so our trial UGRID files suffer from 
problems like missing optional connectivity links, the odd miss-spelling and so 
on.
What this tells us is, that the "robustness" of the format is also a important 
consideration.

>From the point of view of a generic code library developer, the unambiguous 
>identification of the 'role' of elements within a file will definitely make 
>writing parsing code more straightforward -- and not least because dealing 
>with _incorrect_ input in a helpful way is an important usability factor (just 
>as it is in compiler design).
So, I must confess that I personally  was _preferring_ the way that UGRID 
labels each component unambiguously, instead of relying on links from other 
components to infer the role of a variable.

Solutioneering maybe, but ... could we instead **_allow the attribute to be 
named 'ugrid_role', and simultaneously deprecate the older 'cf_role' usage ?_**


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-872063284__;Iw!!G2kpM7uM-TzIFchu!gI2poPff_xwfIpnQMVw6F_zs4v2r3s3F4jWKcIS2Wef7scNBlJ8EEWlts5nRZ3b4Kwzl0-z6CLg$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-30 Thread David Hassell
Dear Klaus,

I hope to allay your concerns by noting that all of the UGRID machinery for 
storing connectivity will certainly be imported into CF unchanged - it is just 
that in the logical data model we don't need to make special mention of it. 
This is because it turns out the connectivity variables are just one (very 
convenient) way of encoding something in CF that can _in principle_ already be 
done another way. We call the CF data model a "minimal" logical data model, 
meaning that we keep it simple by not overlapping the contents of one part of 
the model with another.

All the best,
David 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-871526998__;Iw!!G2kpM7uM-TzIFchu!nJQQ-SJUjuYRcEafLmhlUyS5zK6UjwoUb96yVMPZZ89A_s5kED9DGNpFVzdetcE__uB-R3l6E6Y$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-30 Thread Klaus Zimmermann
Note that not having explicit connectivity creates a (potentially) rather large 
computational overhead for the reconstruction of it. This will be exacerbated 
with more complicated grids in the future, think time-dependent unstructured 
grids, perhaps with regionally varying timestep.

I think it would be good to provide a standardized way of storing connectivity, 
though I agree it also makes sense to make it optional, at least for most 
commonly used classes of grids today.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-871478644__;Iw!!G2kpM7uM-TzIFchu!iWswTipYA5EBK8IzXGOj5Vq_lVnALN16Cgw9Az-6h551zh55jPZldda2WlknBq9UZI98Ip1OvI0$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-30 Thread David Hassell
Dear Jonathan,

That's right. I should have made that clearer, so many thanks for pointing it 
out!

 CF provides cell connectivity by inspection of coincident (or possibly 
overlapping) bounds. 

UGRID provides an index based encoding for making the connectivity easier to 
find in many circumstances, but the CF data model does not need to copy this. 
Not including these connectivity indices in the CF data model in no way 
prevents a software application from managing, and utilising, them "alongside" 
the data model representation.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-871270692__;Iw!!G2kpM7uM-TzIFchu!g4yoe64-ExvhkL70aKWrCFJ5lJylfftHb1VyVnOGSA4MW4qFPyII6ukaJPOgR-FUAaXy6R7S_cM$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-30 Thread JonathanGregory
I agree that a cell which is an edge bounded by two nodes is fine in the CF 
data model, yes. (H) is correct that CF doesn't explicitly recognise 
connectivity, although you could infer it from coincidence - isn't that right? 
Jonathan

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-871264221__;Iw!!G2kpM7uM-TzIFchu!gpU7DJSuTUOiA4uZ1OyXdF852Z6xqnWdZuZbdo7H0bWNCsz5x9z7MgLRM4JoppL1er5_M60eMp8$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-30 Thread David Hassell
Hello,

In starting to think about:

> (H) Further to the discussion on implications on the CF data model 
> (ugrid-conventions/ugrid-conventions/issues/52), the CF data model needs to 
> be updated to allow the storage of topological connections between cells 
> ("cells" in the CF data model sense). It is not necessary at this stage for 
> the connectivity between cell elements (such as the edge of a face) to be a 
> part of the CF data model.

For the one case that I thought was not possible in the current CF data model, 
i.e. a [1D network 
topology](https://urldefense.us/v3/__https://ugrid-conventions.github.io/ugrid-conventions/*1d-network-topology__;Iw!!G2kpM7uM-TzIFchu!gkEbRVWDm8OAd0GAR_p9pl8dtYki7o7-HSGJLjtIHnNlpvKRtYuQk9d3o7xJUf_EfmafcA7vglQ$
 ),

![image](https://urldefense.us/v3/__https://user-images.githubusercontent.com/8126576/123937567-33a58100-d98e-11eb-8fcb-e81a7b8bab1d.png__;!!G2kpM7uM-TzIFchu!gkEbRVWDm8OAd0GAR_p9pl8dtYki7o7-HSGJLjtIHnNlpvKRtYuQk9d3o7xJUf_EfmafuS0f3iU$
 )

I now realise the current data model is OK. I was thinking that in this case 
the CF domain cells were the nodes, but really a cell is an edge  bounded by 
two nodes. In this view, the existing CF framework suffices. Remember that the 
CF data model is independent of the netCDF encoding, including the UGRID. It 
doesn't matter if the CF data model view of the world looks quite different to 
that of the UGRID view, as long as it is possible to unambiguously map between 
the two.

Thanks,
David   

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-871255936__;Iw!!G2kpM7uM-TzIFchu!gkEbRVWDm8OAd0GAR_p9pl8dtYki7o7-HSGJLjtIHnNlpvKRtYuQk9d3o7xJUf_EfmafUs7YDn8$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-21 Thread JonathanGregory
This is fine, thanks. If we agree, I suppose that we need to write propose some 
textual changes in the CF documents for some of these points.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-865061871__;Iw!!G2kpM7uM-TzIFchu!lpypouSOBJ9kpFe7Hc9l1U1EX5cNBaR_5LYsVUoJH92cmxK_NXDfnx5MkxpRJdCUY89wiNHJ2-c$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-06-14 Thread David Hassell
Hello,

Following on from some discussions that have been taking place on the [UGRID 
issue 
tracker](https://urldefense.us/v3/__https://github.com/ugrid-conventions/ugrid-conventions/issues__;!!G2kpM7uM-TzIFchu!jNG-Y16d7c-C88U9VVZoa-yNuIMgPRCdgpg_rDn4glZ59EsZV9mellI5RhDBXtvHkx_max3jEsU$
 ), a couple more items to the proposal are needed (**G** and **H**). Here is 
the new set:

**(A)** The governance is written up along the lines of @hrajagers ideas: 
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-703858946__;Iw!!G2kpM7uM-TzIFchu!jNG-Y16d7c-C88U9VVZoa-yNuIMgPRCdgpg_rDn4glZ59EsZV9mellI5RhDBXtvHkx_mdt2ya0M$
 

**(B)** Comprehensive conformance rules are written up for UGRID. These should 
be maintained alongside UGRID in its repository, and referenced from (not 
copied into) the CF conformance document.

**(C)** Document the standardised UGRID attributes in the CF conventions, 
thereby making them visible to all users. Mention in the governance rules that 
they need maintaining. Only the UGRID attributes which can appear on data 
variables (mesh, location and location_index_sets should be added to CF 
Appendix A. All other attributes UGRID attributes (such as those on mesh 
variables) should go into a new CF appendix specifically about the UGRID mesh 
topology variable, consisting of the table with an introductory sentence or 
two. This would be like the treatment of the attributes of the grid mapping 
variable, which are in a table in Appendix F, not in Appendix A. Note that the 
geometry variable attributes appear in Appendix A, but there are only five of 
them, whereas there are 18 attributes of the mesh topology variable.

**(D)** Deprecate the cf_role attribute for connectivity variables (but 
retaining it on the mesh topology variable). If and only if @hrajagers and 
UGRID colleagues are in agreement, also deprecate the cf_role attribute mesh 
variables, deferring to the presence of the topology_dimension attribute for 
identification. This latter suggestion will make the mesh variable "more 
CF-like", but that is not worth at this time if the expense is a lot of broken 
existing software.

**(E)** Add some text to CF 5.8 (Domain Variables) (now accepted for CF-1.9) to 
explain the UGRID mesh topology variable and how it relates to a domain 
variable. It may the case that the occasional note relating to UGRID would be 
useful in other sections. I don't propose to review for these, but they could 
always be added as when it was felt to be useful.

**(F)** Add a short subsection of CF section 1 to introduce UGRID and its 
purpose, to make clear its special synergy with CF, to remark on the appearance 
of attributes in CF appendices, and to say that it has its own conformance 
document which complements the CF conformance document.

**(G)** Further to the discussion on the order in which the corner nodes of a 
volume are specified (ugrid-conventions/ugrid-conventions/issues/53), the UGRID 
conventions drops support for the fully 3D meshes (When someone actually needs 
it, it can reintroduced without the current ambiguities, which will be fine CF.)

**(H)**  Further to the discussion on implications on the CF data model 
(ugrid-conventions/ugrid-conventions/issues/52), the CF data model needs to be 
updated to allow the storage of topological connections  between cells ("cells" 
in the CF data model sense). It is not necessary at this stage for the 
connectivity between cell _elements_ (such as the edge of a face) to be a part 
of the CF data model.

Thanks,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://urldefense.us/v3/__https://github.com/cf-convention/cf-conventions/issues/153*issuecomment-86019__;Iw!!G2kpM7uM-TzIFchu!jNG-Y16d7c-C88U9VVZoa-yNuIMgPRCdgpg_rDn4glZ59EsZV9mellI5RhDBXtvHkx_mW2viD_c$
 
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2021-02-24 Thread Bert Jagers
Thank you, @davidhassell . Looking good to me as well. As shown above on the 
discussion page, I have posted in the UGRID forum (as well as the SGRID forum 
following [this 
comment](https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712262386))
 a request for feedback on this proposal. I'll also reach out to a number of 
people offline.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-785360644

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-12-03 Thread JonathanGregory
Thank you, @davidhassell. I think this is fine.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-738180915

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-12-01 Thread David Hassell
Dear @JonathanGregory and @hrajagers,

Here is a synthesis current proposal. How does it sound?

**(A)** The governance is written up along the lines of @hrajagers ideas: #153 
(comment)

**(B)** Comprehensive conformance rules are written up for UGRID. These should 
be maintained alongside UGRID in its repository, and referenced from (not 
copied into) the CF conformance document.

**(C)** Document the standardised UGRID attributes in the CF conventions, 
thereby making them visible to all users. Mention in the governance rules that 
they need maintaining. Only the UGRID attributes which can appear on data 
variables (`mesh`, `location` and `location_index_sets` should be added to CF 
Appendix A. All other attributes UGRID attributes (such as those on mesh 
variables) should go into a new CF appendix specifically about the UGRID mesh 
topology variable, consisting of the table with an introductory sentence or 
two. This would be like the treatment of the attributes of the grid mapping 
variable, which are in a table in Appendix F, not in Appendix A. Note that the 
geometry variable attributes appear in Appendix A, but there are only five of 
them, whereas there are 18 attributes of the mesh topology variable.

**(D)** Deprecate the  `cf_role` attribute for connectivity variables (but 
retaining it on the mesh topology variable). If and only if @hrajagers and 
UGRID colleagues are in agreement, also deprecate the  `cf_role` attribute mesh 
variables, deferring to the presence of the `topology_dimension` attribute for 
identification. This latter suggestion will make the mesh variable "more 
CF-like", but that is not worth at this time if the expense is a lot of broken 
existing software. 

**(E)** Add some text to CF 5.8 (Domain Variables) (now accepted for CF-1.9) to 
explain the UGRID mesh topology variable and how it relates to a domain 
variable. It may the case that the occasional note relating to UGRID would be 
useful in other sections. I don't propose to review for these, but they could 
always be added as when it was felt to be useful.

**(F)** Add a short subsection of CF section 1 to introduce UGRID and its 
purpose, to make clear its special synergy with CF, to remark on the appearance 
of attributes in CF appendices, and to say that it has its own conformance 
document which complements the CF conformance document.

Thanks,
David



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-736382330

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-20 Thread JonathanGregory
Dear @davidhassell 

> Is it "Even though UGRID is being included in CF, we don't have to consider 
> the relationship between domains of different data variables at the moment."

Yes, that is what I meant. By "not being included in CF" I meant "in the CF 
_document_". Sorry to be unclear.

Thanks

Jonathan

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712851846

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-20 Thread David Hassell
(sorry - pressed send too early - I'll try again!)

Dear @JonathanGregory,

Thanks for these comments

I agree with your updated **(C)**.

I'm also fine in **(D)** with a mesh topology variable getting its canonical 
identity from the `topology_dimension` attribute (which is similar in principle 
to how a domain variable is to be identified). However, it would be good to 
here from @hrajagers if making this `cf_role` use optional is OK.

I agree with **(F)**. 

> If UGRID is not being included in CF, we don't have to consider it at the 
> moment.

I'm not sure what you mean here. Is it "Even though UGRID is being included in 
CF, we don't have to consider the relationship between domains of different 
data variables at the moment.". Apologies if I have misunderstood.

Also on the data model, I'd just like to highlight that the integer-valued  
interconnectivity variables (e.g. `"edge_node_connectivity"`) need not feature 
in the data model, for the same reasons that a list variable for compression by 
gathering does appear in the data model.

I agree that the issue of SGRID, and interconnected domain/data variables in 
general, is a conversation for another issue; and now that we are starting to  
formalise the storage of domains as independent entities, this is a good moment 
to reignite this conversation.

All the best,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712686233

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-20 Thread David Hassell
Dear @JonathanGregory,

Thanks for these comments

I agree with your updated **(C)**.

I'm also fine in (D) with a mesh topology variable getting its canonical 
identity from the  `topology_dimension`



-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712675809

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-19 Thread JonathanGregory
Dear @davidhassell

Thanks for this summary. I agree with **(A)**, **(B)** and **(E)** as given.

Re **(C)**, I would suggest that only the UGRID attributes which can appear on 
data variables should be added to CF Appendix A. If I have read the document 
correctly, these are `mesh`, `location` and `location_index_set`. The other 
attributes belong to mesh variables. To prevent accidental collision with CF, 
it would nonetheless be useful to tabulate them, but I'd suggest we put them in 
a new CF appendix specifically about the UGRID mesh topology variable, 
consisting of the table with an introductory sentence or two. This would be 
like the treatment of the attributes of the grid mapping variable, which are in 
a table in Appendix F, not in Appendix A. I note that the geometry variable 
attributes appear in Appendix A, but there are only five of them, whereas there 
are 18 attributes of the mesh topology variable.

Re **(D)**, if Bert @hrajagers and UGRID colleagues are OK with dropping 
`cf_role` for connectivity variables, that's good. They could continue to be 
allowed but deprecated, rather than disallowed. That's a decision to be made 
when the conformance rules **(B)** are written. It seems to me that `cf_role` 
is also redundant on the mesh topology variable, because it must also have a 
`topology_dimension` attribute, it seems. Couldn't that be used as the defining 
characteristic of a mesh topology variable? If so, this `cf_role` could also be 
deprecated; it can't be disallowed if current software depends on it, as Bert 
says.

**(F)** I proposed earlier that we could add a short subsection of CF section 1 
to introduce UGRID and its purpose, to make clear its special synergy with CF, 
to remark on the appearance of attributes in CF appendices, and to say that it 
has its own conformance document which complements the CF conformance document. 
What do you think?

I agree with you that the relationship between domains of different data 
variables is not currently considered in the CF data model, but not 
inconsistent with the data model. If UGRID is not being included in CF, we 
don't have to consider it at the moment.

Regarding Ryan @rabernat's comment, I think it would be fine to consider SGRID 
as well, but let's do it as a separate issue, and perhaps after UGRID, because 
we may not have enough mental capacity to deal with both at once.

Best wishes

Jonathan


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712441568

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-19 Thread Ryan Abernathey
Thanks to everyone who is working through this important issues.

I strongly support incorporating SGRID into this same framework.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712262386

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-19 Thread David Hassell
A note on the CF data model:

I think that  UGRID need not affect the CF data model at this time.

This is because CF does not currently formalise connections between data 
variables, on the same or different domains. A mesh topology variable collates 
multiple domains (one for faces, one for edges, etc.), but a given data 
variable only refers to one of them (e.g. `  data:location = "face" ;`). How 
you relate a "face" data variable to an "edge" one is moot when you abstract 
out the netCDF encoding - you get to the same place if you do it by inspection 
of the coordinate values, or by inspection of the mesh topology and data 
variable attributes.

I realise that you could say that the point of UGRID is to make these relations 
explicit, but if that is to be the case then it should be propagated to other 
areas of CF (e.g. as [SGRID](https://sgrid.github.io/sgrid/) proposes), and so 
should be considered in the round at a later stage.

Does sound reasonable?

Thanks,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-712239331

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-16 Thread David Hassell
Dear Bert, Jonathan, and all,

I would like to try to summarize the ideas that have been discussed in the form 
of some broad proposals that I hope could be acceptable to allow us conclude 
this issue. I welcome your feedback.

In no particular order:

**(A)** The governance is written up along the lines of @hrajagers ideas: 
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-703858946

**(B)** Comprehensive conformance rules are written up for UGRID. These should 
be maintained alongside UGRID in its repository, and referenced from (not 
copied into) the [CF conformance 
document](http://cfconventions.org/cf-conventions/conformance.html).

**(C)** Update the aforementioned [CF Appendix 
A](https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#attribute-appendix)
 to include the relevant UGRID attributes, thereby making them visible to all 
users. Mention in the governance rules that this table needs maintaining.

**(D)** Based on @hrajagers [previous 
comment](https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-703858946),
 dropping the standardisation of `cf_role` on the "connectivity" variables, but 
retaining it on the mesh topology variable. This is related to my previous 
comments [about the use of datasets with meshes but no 
data](https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-704435832),
 which I now withdraw. A mesh topology variable can actually contain multiple 
domains in the CF-sense, one of which can "picked out" by a data variable. This 
makes it sufficiently different, I realise, to the proposed CF domain variable 
(#301) that we shouldn't to unify them at this time.

**(E)** Add some text to CF 5.8 (Domain Variables) (currently being proposed in 
#301) to explain the UGRID mesh topology variable and how it relates to a 
domain variable. It may the case that the occasional note relating to UGRID 
would be useful in other sections. I don't propose to review for these, but 
they could always be added as when it was felt to be useful.

Thanks,
David 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-710122506

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-05 Thread David Hassell
Dear Bert,

Thank  you for describing all of the history that has occurred here - it really 
is very helpful, particularly the interactions you have had on the geometries 
front.

A summary of my position would be that I would support UGRID being moved into 
CF ("chapter 10"), but if this is not possible then I think that we would still 
be able to find a way to make things work satisfactorily. 
 
 Governance

If UGRID were incorporated into the CF text, there is no governance issue. It's 
an issue that only arises if it lives outside.

If UGRID lived outside, I genuinely do not expect any problems in the CF/UGRID 
working relationship, for the same reasons described by @hrajagers, but the 
part of the  point of the governance rules is to prevent problems arising, 
however unlikely. We would need to cover situations thorny situations, [such 
those 
raised](https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702580499)
 by @erget.

One of my own concerns with UGRID not being inside CF is its general 
invisibility to users. The proposed introductory text is very short and will 
surely not result in most users seeking out and reading the full UGRID 
conventions. For instance, what would happen if a user applied `mesh` and 
`location` attributes to a non-UGRID data variable in good faith, having 
checked in [Appendix 
A](https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#attribute-appendix)
 that these attributes are not standardised? The UGRID-aware CF checker might 
tell them their dataset is broken. OK, they could then rename the attributes 
with this new-found knowledge, but they need to be able to ascertain this  
_before_ creating datasets, and I don't think that this is easy enough were 
UGRID to exist elsewhere.

 cf_role

This comes down to variable identification, clearly. From a CF perspective, we 
know that a data variable employs UGRIDbecause  it has 
`location_index_set`, or both `mesh` and `location`, attributes. One of these 
attributes identifies the relevant mesh  container variable, that in turn 
identifies other required variables (such as edge node connectivity variables). 
I don't need `cf_role` to make any of these connections, so the use of 
`cf_role` comprises a redundancy.


So, if we were starting _ab initio_, I would argue for dropping the `cf_role` 
attributes altogether. But we are not! So I can see there is an argument for 
keeping it for backwards UGRID-compatibility, i.e. extending the use of 
`cf_role` to include UGRID (as well as DSGs). Or perhaps it could be dropped 
without problems?

What do others think?

 Conformance

I presume from what you say that there are no conformance rules (rather than 
there are rules but no existing software)? Is that right. We only need the 
rules to get UGRID (in any form) into CF. If it were helpful, I would be happy 
to draft some CF-style conformance rules.


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-703714811

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-04 Thread Bert Jagers
Dear David, Jonathan,

Thank you for moving this forward. In the very beginning we were thinking to 
move the definiiton for unstructured grids into the CF conventions, later the 
discussion moved more in the direction of a separate but affiliated convention, 
and in the end the discussion seems to have settled on a separately documented 
but linked convention. Since documentation for the CF conventions has shifted 
to GitHub as well I don't know whether the effort of porting the documents over 
to the CF repository is still a major issue, but there is a bit of a difference 
in documentation style. Since UGRID has received quite some uptake already, it 
may be advantagious to keep the separate identy whereas being more integrated 
into CF may increase the uptake in the wider OGC and GIS domains ... although 
via [MDAL support](https://www.mdal.xyz/drivers/ugrid.html) (closely linked to 
CF) we have already made a good step forward in that direction. By keeping the 
conventions separate it helps to lower the threshold for implementing either 
convention. The coin can still flip either way for me, but the concept of 
modularity introduces a slight preference for keeping the conventions somewhat 
separate. Many of the core developers of the UGRID conventions are well 
embedded in the CF conventions, so I think it would be quite acceptable to set 
out some formal rules as you describe to assure that the two conventions 
develop in a mutually compatible way.

The UGRID 1.0 convention has indeed remained quite stable, the main reason for 
this is that we already had quite some discussion and uptake before we released 
version 1.0 ... and ... conventions for specific topics can remain stable for 
much longer periods than the CF conventions that cover a wide range of 
features. I don't know of any recent changes in CF that would make UGRID less 
compatible with 1.9 than with 1.6. We use it ourselves in combination with 1.8 
on a daily basis. The 
[geometries](https://cfconventions.org/Data/cf-conventions/cf-conventions-1.8/cf-conventions.html#geometries)
 are the only development closely related to UGRID and at some time it used a 
very similar definition format, but given the considered use cases it made more 
sense there to drop the concept of shared nodes in favour of simplicity and 
consistency with other storage formats for GIS feature sets. At Deltares we 
have a draft extension to allow the 1D discretisations within UGRID to be 
defined on a curved 1D space ... for this extension we build on those 
geometries introduced in CF 1.8 to describe the shape of the space (i.e. river) 
before descretisation. So, we try to adopt new CF features as much as possible.

There is one element in UGRID that is not fully compatible with CF in any 
version and that's the use of the attribute "cf_role" to identify the 
"mesh_topology" and various types of connectivity variables such as the 
"face_node_connectivity". The name of this attribute was chosen when it was 
anticipated that UGRID was to move into CF, but if remains a separate 
convention we may have to reconsider this attribute name ... or CF would have 
to formally permit this type of use.

The question about a UGRID checker has popped up twice or so in discussions I 
had regarding UGRID over the last year. We haven't implemented a formal UGRID 
checker, but it would indeed be useful to have.

Best regards,

Bert

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-703216041
This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.


Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-02 Thread David Hassell
> It would be great to hear from some folks who work on UGRID.

I see that the [UGRID conventions GitHub 
repository](https://github.com/ugrid-conventions/ugrid-conventions) has not 
been updated for 2 years, and the version being recommended for CF is `UGRID 
1.0`, which was released 4 1/2 years ago and is also the latest version. At 
this time CF was at CF-1.6. _This is absolutely not a criticism_ (CF has gone 
for longer periods in the past with no readily available signs of advancement, 
although progress was always going on), but we do need to be sure that UGRID 
1.0 is compatible with the draft of CF-1.9. Has anyone looked at this?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702607897

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-02 Thread Daniel Lee
In general, I'm not a huge fan of tight coupling but I don't have objections to 
the thrust of these changes - they aren't very onerous and won't force us to 
increment if we have no reason to.

The specifics make me slightly more nervous. My understanding is that, if 
proposed changes to CF are not compatible with the currently referenced version 
of UGRID, 
> then UGRID will need to be modified to accommodate the new features

via a proposal to UGRID, but
> to facilitate the progress of a proposal that requires UGRID changes, it is 
> sufficient for the general nature of the UGRID modifications to be 
> identified, on the understanding that the UGRID conventions will be updated 
> in detail at a later date, possibly after the proposal has been accepted in 
> all other aspects. **Final acceptance will always rely on the completion of 
> changes to the UGRID conventions, which is at the discretion of the UGRID 
> community.**

Emphasis is my own.

If this is the case, does that mean that we would accept the proposal formally 
from CF's side when we have verified that a proposal to UGRID has been made, 
and then simply wait to merge the CF proposal until the UGRID proposal has been 
accepted? The danger is that this might take a long time, and then the CF 
baseline might have drifted, so that the original CF proposal would need 
revisiting. In all cases I think that this would have to be checked again to 
ensure that we don't introduce inconsistencies into the Conventions.

Alternatively we could merge immediately in the hopes that the UGRID proposal 
would be accepted - a bit too optimistic for my taste though and the risk would 
be that the two standards diverge.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702580499

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-01 Thread David Hassell
Here are my proposed additions to 
https://github.com/cf-convention/cf-convention.github.io/blob/master/rules.md. 
I probably haven't quite got it yet, but it's a start.

A key thing to note is the second line: _"The assessment will be carried out by 
a member of the conventions committee or another suitably qualified person. If 
no-one volunteers, the chairman of the committee will ask someone to do it."_

What this means is that every enhancement proposal must be "signed off" for any 
UGRID issues.  Almost always this will be a trivial task (e.g. the introduction 
a new grid mapping attribute parameter - no problem!), but it needs to be done.

For simple cases, as in the example just mentioned, someone who is familiar 
(rather than expert) with UGRID could take care of this, but for more 
complicated proposals, the opinion of an expert from the UGRID community must 
be available.


The first and last sentences covers how to increment the version of UGRID that 
is acceptable to a give version of CF.
 
-

### Additional rules relating to the UGRID conventions

All new proposals will be assessed to see if the new features defined in the 
proposal are compatible with the named version of UGRID that is defined for the 
current version of the CF conventions.

The assessment will be carried out by a member of the conventions committee or 
another suitably qualified person. If no-one volunteers, the chairman of the 
committee will ask someone to do it.

If the proposal is deemed to be not compatible with UGRID in some way, then an 
attempt must be made to modify the proposal so that its new features are 
compatible with UGRID, and in such a way that the proposal's intent is not 
compromised.

If the proposal cannot be acceptably modified to conform to the UGRID 
conventions, then UGRID will need to be modified to accommodate the new 
features. If UGRID is extended or generalized in some way that allows the new 
features but does not affect its existing structure and functionality, the 
proposal is considered backwards compatible. This is the preferred solution.

Any such changes to UGRID must be defined in general terms, and preferably with 
a detailed description of the UGRID alterations. However, to facilitate the 
progress of a proposal that requires UGRID changes, it is sufficient for the 
general nature of the UGRID modifications to be identified, on the 
understanding that the UGRID conventions will be updated in detail at a later 
date, possibly after the proposal has been accepted in all other aspects. Final 
acceptance will always rely on the completion of changes to the UGRID 
conventions, which is at the discretion of the UGRID community.

The UGRID conventions exist independently from CF and have their own repository 
and governance. Therefore the acceptance of a new version of UGRID, whether it 
arises from a change to CF or from an independent change to UGRID itself, must 
be raised and discussed in its own enhancement proposal in the usual manner. It 
follows that a change to CF that requires a change to UGRID will be associated 
with two GitHub issues - one for the change to CF and one for accepting the new 
version of UGRID. 

-

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702313556

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-01 Thread JonathanGregory
Yes, please. That would be most helpful. Jonathan

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702146979

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-10-01 Thread David Hassell
Hello,

Some colleagues were asking after the status of this proposal. As far as I'm 
aware, there are no outstanding objections other than the requirement to spell 
out some rules for the co-management of the two conventions: CF and UGRID.

The CF data model has now been accepted, and the [rules for its 
management](https://github.com/cf-convention/cf-convention.github.io/blob/master/rules.md)
 will be in CF-1.9. I think there are some similarities between the 
requirements rules for evolving the data model, and for evolving UGRID.

I am happy to draft some rules for UGRID, if that helps to get the ball rolling.

Thanks,
David 

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-702118667

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-01-08 Thread David A. Ham
I think that this is essentially correct. The naming issues are also not 
insurmountable. Finite element has its own conventions, but they are just 
naming conventions. If UGRID has finite difference naming then this will merely 
be a bit confusing for finite element users.

In the specific cases above, there are two relevant differences to note:

1. Vertex vs node. Node means something quite different in finite element (a 
node is a basis function in the dual space to the finite element space), which 
is why finite element codes usually talk about vertices when discussing the 
mesh topology.

2. face vs element or cell. node, edge, face, volume are names for mesh 
entities of a given dimension. Finite element is often more concerned with 
codimension, which counts downwards from the mesh dimension. A cell (or 
element) is an entity of codimension 0, i.e. an entity of maximal dimension. On 
a 3D mesh the cells are volumes and on a 2D mesh they are faces (cell is also 
defined for 2D or 1D meshes). A facet is an entity of codimension 1. Facets 
form the boundaries between cells. On a 3D mesh, the facets are faces while on 
a 2D mesh they are edges, and on a 1D mesh they are nodes. Given that a UGRID 
mesh knows its dimension, it is possible for software to identify the cells or 
facets so the difference in naming convention is not so significant.  

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-572056622

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.

Re: [CF-metadata] [cf-convention/cf-conventions] Reference UGRID conventions in CF (#153)

2020-01-08 Thread David Hassell
Hello,

I have been looking at the Finite Element based CF proposal for Unstructured 
Grid data model 
(https://publicwiki.deltares.nl/display/NETCDF/Finite+Element+based+CF+proposal+for+Unstructured+Grid+data+model)
 which was written up some time ago by Bert.  This proposes an encoding for the 
information required for a consistent spatial interpretation of the values.

Given that UGRID is going to be incorporated into CF _[1]_, I was looking at 
this with to see if backward incompatible changes could occur if this new 
proposal (or something like it) become part of UGRID at a later date.

_[1] it seems like this will indeed happen, once the management side is sorted 
out ..._

My conclusion from a quick read of Bert's document was that adding the 
"Function Space" capability, would not impact on files encoded using UGRID 1.0 
- which would be good. However, the proposal does suggest renaming certain 
special attributes (e.g.  `face_node_connectivity` becomes 
`element_vertex_connectivity`). This could be bad for CF backwards 
compatibility, but, I presume, is easily avoided with a little thought at this 
stage.

Does all this sound like a a reasonable assessment?

Thanks,
David

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/cf-convention/cf-conventions/issues/153#issuecomment-572043075

This list forwards relevant notifications from Github.  It is distinct from 
cf-metad...@cgd.ucar.edu, although if you do nothing, a subscription to the 
UCAR list will result in a subscription to this list.
To unsubscribe from this list only, send a message to 
cf-metadata-unsubscribe-requ...@listserv.llnl.gov.