Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Triply Use Case 4: Align an engineering CRS to a geospatial CRS #586

Open
wouterbeek opened this issue Nov 5, 2024 · 2 comments
Open

Triply Use Case 4: Align an engineering CRS to a geospatial CRS #586

wouterbeek opened this issue Nov 5, 2024 · 2 comments

Comments

@wouterbeek
Copy link

Triply Use Case 4: Align an engineering CRS to a geospatial CRS

Description

3D BIM data typically uses an internal "engineering CRS". This may either be one CRS for the whole building, or multiple CRS-es per building component. The BIM data typically starts at coordinate (0,0,0) in the engineering CRS.

In GeoSPARQL, my data uses a "geospatial CRS". This may be a global CRS for any place on Earth, or a national CRS for any place in a country.

I know that I should be able to integrate data that follows the "engineering CRS" into the data that follows the "geospatial CRS", but I do not know how to do that. In GeoSPARQL 1.1, I have geof:transform() which I have used in the part to convert between two "geospatial CRSes", but I do not know how to apply that function to data with an "engineering CRS" that starts at (0,0,0).

Actor

  • Data Expert (who may not be a Geodata Expert)

Preconditions

  • I have a 3D BIM object.
  • I have some GeoSPARQL data.

Postconditions

  • I have integrated my 3D BIM object into my GeoSPARQL data, so that the object appears in the correct (x,y) position.

Steps

  1. I have a 3D BIM object that I convert to 3D GeoSPARQL, but this causes the building to appear at spot (0,0), e.g. somewhere in the ocean or in a different country.
  2. I have 2D data in GeoSPARQL that uses CRS IRI http://www.opengis.net/def/crs/EPSG/0/28992, which is specific to The Netherlands.
  3. I can use geof:transform() or something similar to translate (1) into something that fits into (2).
  4. When somebody queries my data, they can see the 3D GeoSPARQL object in the correct spot.
@FransKnibbe
Copy link
Collaborator

geo:transform needs to know the IRIs of both source and target CRS. For engineering CRSs (local CRSs), typically no CRS IRI will be available. And with no CRS IRI, a 3D geometry can not be encoded as a geosparql:Geometry.
At Triply, we had the challenge of georeferencing 3D geometry from BIM, for example as a glTF file. The coordinates use a cartesian engineering CRS, with a local origin. In order to be able to georeference such a 3D geometry, the following data are needed:

  1. A translation (a vector from the origin of the local CRS to a point on the geographical CRS, could be encoded as an sf:Point)
  2. A rotation angle, indicating a clockwise or anticlockwise rotation around the origin
  3. A scale factor for the length units (e.g. from millimetre to metre)

Could it be in scope for GeoSPARQL to provide these properties? I have had a hard time finding suitable semantics for rotation elsewhere, so I think that would nicely fill a gap in the semantic web.

This probably also touches on CRS semantics in GeoSPARQL. Can a geo:Geometry with a (temporarily) unspecified CRS exist? Or should there be another subclass of geo:SpatialObject for that?

@situx
Copy link
Collaborator

situx commented Nov 7, 2024

I might be wrong, but I think these transformations could be part of coordinate operations that you find in CRS terminology or they could be adopted from there.
I would need to check that and maybe it comes up in the CRS ontology work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants