Open lhmarsden opened 2 days ago
Thank you for your proposal. These terms will be added to the cfeditor (http://cfeditor.ceda.ac.uk/proposals/1) shortly. Your proposal will then be reviewed and commented on by the community and Standard Names moderator.
Dear Luke @lhmarsden
It is certainly CF-compliant to store a field of data at scattered points, as you suggest. Your point
dimension and coordinate variable are a "discrete axis" (section 4.5). In addition, you can designate this arrangement with the attribute featureType="point"
(sect 9.1, examples in appendix H1). Is this what you mean?
I don't think quantities at points need special standard names. They are the same quantities as in continuous geophysical fields, but sampled discretely. However, most of your quantities probably do need standard names. The first one can use the existing standard name of altitude
, which means height above geoid.
Best wishes
Jonathan
Thanks for your reply, Jonathan.
Yes, I think the discrete axis section is relevant here, and I agree that most of the variables don't need special standard names.
I was not sure about whether altitude was appropriate in this case or not. I was envisioning a scenario where we just have lat, lon and altitude. For example, a DEM. If we use the standard name altitude, is it clear that this is the altitude at the surface, or just some altitude at which measurements are taken? Maybe I am being pedantic here...
Luke
From: JonathanGregory @.> Sent: Tuesday, November 19, 2024 2:28:02 pm To: cf-convention/vocabularies @.> Cc: Luke Marsden @.>; Mention @.> Subject: Re: [cf-convention/vocabularies] Standard names: Point clouds, DEMs and DTMs (Issue #239)
Dear Luke @lhmarsdenhttps://github.com/lhmarsden
It is certainly CF-compliant to store a field of data at scattered points, as you suggest. Your point dimension and coordinate variable are a "discrete axis" (section 4.5https://cfconventions.org/cf-conventions/cf-conventions.html#discrete-axis). In addition, you can designate this arrangement with the attribute featureType="point" (sect 9.1https://cfconventions.org/cf-conventions/cf-conventions.html#_features_and_feature_types, examples in appendix H1https://cfconventions.org/cf-conventions/cf-conventions.html#point-data). Is this what you mean?
I don't think quantities at points need special standard names. They are the same quantities as in continuous geophysical fields, but sampled discretely. However, most of your quantities probably do need standard names. The first one can use the existing standard name of altitude, which means height above geoid.
Best wishes
Jonathan
— Reply to this email directly, view it on GitHubhttps://github.com/cf-convention/vocabularies/issues/239#issuecomment-2485714078, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AOMNBFKFYT3SFGY6J6UTTLD2BM4F3AVCNFSM6AAAAABSBQZJ4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOBVG4YTIMBXHA. You are receiving this because you were mentioned.Message ID: @.***>
Sorry, yes. There is a standard name of surface_altitude too, which is presumably the right one?
This is close. Maybe this is okay. Maybe I am being pedantic. The definition is
The surface called "surface" means the lower boundary of the atmosphere. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.
If the point cloud is of a bridge, and includes the underside of the bridge, can that be considered the lower boundary of the atmosphere?
What is the protocol around adjusting definitions for existing standard names? The name itself does seem suitable, and it feels unnecessary to add a new name for this.
'The surface called "surface" ' seems to be a bit clumsy wording to me. Perhaps a more suitable definition would be
"surface" refers to the boundary between the atmosphere and an object. Altitude is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.
Luke
is Z
-- elvation, height, ??? -- a property of a point at a 2D location, or is the point a 3D point?
float Z(point) ;
Z:units = "meters" ;
Z:long_name = "Z coordinate" ;
Z:standard_name = "height" ;
Z:grid_mapping = "crs" ;
Z:coverage_content_type = "coordinate" ;
Calling it a coordinate makes me think it's well, the 3rd coordinate of the point.
If the latter, then I think the properties should have:
green:coordinates = "Z, latitude longitude" ;
And that makes this different than a DEM, which, IIUC, defines a surface, such that each location in the 2D, X-Y (lat-lon) space has a single elevation value.
I think a point cloud can have more than. one point at the same horizontal location -- i.e. on on top of the other.
Does this have any bearing on the standard name? I"m not sure it does, but we should make sure the examples are clear.
I think this is a 3rd coordinate of a point. You are correct, I should update the coordinates
variable attribute to state this.
For a point cloud, this is just the location of a point in space, all three dimensions.
I am working on a data flow for storing data in point clouds in CF-NetCDF files. A point cloud is a collection of data points in a three-dimensional space, typically representing the surface of an object or environment, where each point contains spatial coordinates and may include additional attributes such as colour, normals, or intensity. The data I am working on are mostly focused on natural features (valleys, glaciers etc). However, a point clouds can be used to map the surface of man-made objects too. A point cloud could equally include both - a valley may include buildings for example.
I think CF-NetCDF is a suitable format for this type of data; existing commonly-used formats are not FAIR compliant, as far as I am aware. DEMs and DTMs could be stored in the same way, with the
featureType
beingpoint
.Here is how I envisage the file might look, with a few data variables added as an example:
Example
However, I am missing a few standard names.
Points and directions
point_elevation_above_geoid
Definition: A point is a single spatial measurement on an object's surface as measured in a point cloud or digital terrain model. elevation_above_geoid is the (geometric) height above the geoid, which is the reference geopotential surface. The geoid is similar to mean sea level.
Canonical units: m
sensor_to_point_direction_x_component
Definition: X-component of the vector describing the direction from the sensor to a point of interest, relative to the sensor. "x" indicates a vector component along the grid x-axis, positive with increasing x.
Canonical units: 1 (dimensionless)
sensor_to_point_direction_y_component
Definition: Y-component of the vector describing the direction from the sensor to a point of interest, relative to the sensor. "y" indicates a vector component along the grid y-axis, positive with increasing y.
Canonical units: 1 (dimensionless)
sensor_to_point_direction_z_component
Definition: Z-component of the vector describing the direction from the sensor to a point of interest, relative to the sensor. "z" indicates a vector component along the grid z-axis, positive with increasing z.
Canonical units: 1 (dimensionless)
surface_normal_vector_x_component
Definition: The X-component of the surface normal vector at a specified location, indicating the orientation of the surface at that point. "x" indicates a vector component along the grid x-axis, positive with increasing x.
Canonical units: 1 (dimensionless)
surface_normal_vector_y_component
Definition: The Y-component of the surface normal vector at a specified location, indicating the orientation of the surface at that point. "y" indicates a vector component along the grid y-axis, positive with increasing y.
Canonical units: 1 (dimensionless)
surface_normal_vector_z_component
Definition: The Z-component of the surface normal vector at a specified location, indicating the orientation of the surface at that point. "z" indicates a vector component along the grid z-axis, positive with increasing y.
Canonical units: 1 (dimensionless)
Red, green and blue
Normalised RGB values can be on different scales, with different valid ranges:
I am unsure how to deal with this. Perhaps the user should be required to include
valid_min
andvalid_max
variables attributes? Or should CF specify which range the user should use? It is not obvious to me which range is best.The wavelength that red, green and blue refer to can vary between different applications, and depends on the context. For the sake of interoperability, the wavelength referred to should be stated. I am not sure what is the best approach here. Perhaps a variable attribute? This is usually only used for quick preview purposes as far as I am aware, so maybe this isn't an issue. In my example I give the intensity of each band as a 2D variable, so one could compute their own RGB values if they wanted to. However, I think it is useful to include both.
normalised_red_wavelength_intensity_of_point
Definition: Intensity of electromagnetic radiation in the red wavelength band reflected or emitted from a point. Values are scaled relative to a reference intensity or maximum possible value. red corresponds to the red component of the RGB colour model.
Canonical units: 1
normalised_green_wavelength_intensity_of_point
Definition: Intensity of electromagnetic radiation in the green wavelength band reflected or emitted from a point. Values are scaled relative to a reference intensity or maximum possible value. red corresponds to the green component of the RGB colour model.
Canonical units: 1
normalised_blue_wavelength_intensity_of_point
Definition: Intensity of electromagnetic radiation in the blue wavelength band reflected or emitted from a point. Values are scaled relative to a reference intensity or maximum possible value. red corresponds to the blue component of the RGB colour model.
Canonical units: 1