{"action":"opened","issue":{"url":"https://api.github.com/repos/ugrid-conventions/ugrid-conventions/issues/26","repository_url":"https://api.github.com/repos/ugrid-conventions/ugrid-conventions","labels_url":"https://api.github.com/repos/ugrid-conventions/ugrid-conventions/issues/26/labels{/name}","comments_url":"https://api.github.com/repos/ugrid-conventions/ugrid-conventions/issues/26/comments","events_url":"https://api.github.com/repos/ugrid-conventions/ugrid-conventions/issues/26/events","html_url":"https://github.com/ugrid-conventions/ugrid-conventions/issues/26","id":143737435,"number":26,"title":"use of flag_values in face_face_connectivity not consistent with CF","user":{"login":"GLang-BAW","id":5746050,"avatar_url":"https://avatars.githubusercontent.com/u/5746050?v=3","gravatar_id":"","url":"https://api.github.com/users/GLang-BAW","html_url":"https://github.com/GLang-BAW","followers_url":"https://api.github.com/users/GLang-BAW/followers","following_url":"https://api.github.com/users/GLang-BAW/following{/other_user}","gists_url":"https://api.github.com/users/GLang-BAW/gists{/gist_id}","starred_url":"https://api.github.com/users/GLang-BAW/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GLang-BAW/subscriptions","organizations_url":"https://api.github.com/users/GLang-BAW/orgs","repos_url":"https://api.github.com/users/GLang-BAW/repos","events_url":"https://api.github.com/users/GLang-BAW/events{/privacy}","received_events_url":"https://api.github.com/users/GLang-BAW/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-03-26T18:20:03Z","updated_at":"2016-03-26T18:20:03Z","closed_at":null,"body":"(1) Actual use of flag_values and flag_meanings in connectivity list.\r\n\r\n   integer Mesh2_face_links(nMesh2_face, Three) ;\r\n      :cf_role = \"face_face_connectivity\" ;\r\n      :long_name = \"Indicates which other faces neighbor each face.\" ;\r\n      :start_index = 1 ;\r\n      :flag_values = -1 ;\r\n      :flag_meanings = \"out_of_mesh\" ;\r\n\r\n(2) What CF says about use of flag_values and flag_meanings\r\n\r\n   The attributes flag_values and flag_meanings are intended to make variables that contain\r\n   flag values self describing.  The flag_values and flag_meanings attributes describe\r\n   a status flag consisting of mutually exclusive coded values. \r\n\r\n(3) My understanding of variables with flag_values and flag_meanings\r\n\r\n   Each data item of the variable is interpreted in terms of the available flag_values, flag_meanings.\r\n   \r\n   For each valid data item there must be an entry in the list of flag_values, flag_meanings. Otherwise\r\n   we have no meaning for a specific data item.\r\n   \r\n   For the above variable I would expect to have a second entry in flag_meanings with e.g. value inside_mesh.\r\n\r\n    Conclusion: flag_values and flag_meanings are not used consistent with CF in the current definition\r\n    of the above printed connectivity list.\r\n\r\n(4) Recommendation: Use _FillValue to indicate missing neighbor (out of mesh). Example:\r\n\r\n   integer Mesh2_face_links(nMesh2_face, Three) ;\r\n      :cf_role = \"face_face_connectivity\" ;\r\n      :long_name = \"Indicates which other faces neighbor each face.\" ;\r\n      :start_index = 1 ;\r\n      :_FillValue = -1 ;\r\n\r\n  This is, from my point of view, also much more simple and straightforward to use. For faces with more than three edges one one might not be able to compute the number of edges for this face based on the face_face_connectivity table alone. For this purpose one should use e.g. face_edge_connectivity.\r\n\r\nGünther Lang"}}