Changes for page kg-spatial-search
Last modified by oschmid on 2023/08/22 11:23
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -22,16 +22,62 @@ 22 22 23 23 = What data is registered in the spatial search? = 24 24 25 -Theoretically, all data which is anchored in their respective coordinate space can be registered in the KG Spatial Search. We currently provide ingestion pipelines for data annotated with the[[ locareJSON format>>https://github.com/blixilla/LocareJSON]]. Please note that complex, planar and volumetric geometries such as polyhedrons, spheres, etc. are translated into point clouds of a configurable density during the ingestion process to ensure better performance at query time for the cost for potential false-negatives in highly fine-granular queries. 25 +Theoretically, all data which is anchored in their respective coordinate space can be registered in the KG Spatial Search. We currently provide ingestion pipelines for data annotated with the[[ locareJSON format>>https://github.com/blixilla/LocareJSON]]. Please note that complex, planar and volumetric geometries such as polyhedrons, spheres, etc. are translated into point clouds of a configurable density during the ingestion process to ensure better performance at query time for the cost for potential false-negatives in highly fine-granular queries. Please also note that currently only datasets can be registered for which the spatial location information is regarded to be non-sensitive from a GDPR perspective. 26 26 27 27 = How do I query the KG Spatial Search? = 28 28 29 - Go to29 +Simply use the API endpoint at [[https:~~/~~/spatial.kg.ebrains.eu/api/>>https://spatial.kg.ebrains.eu/api/]] by running queries according to the following examples: 30 30 31 -Theoretically, all data which is anchored in their respective coordinate space can be registered in the KG Spatial Search. We currently provide ingestion pipelines for data annotated with the[[ locareJSON format>>https://github.com/blixilla/LocareJSON]]. Please note that complex, planar and volumetric geometries such as polyhedrons, spheres, etc. are translated into point clouds of a configurable density during the ingestion process to ensure better performance at query time for the cost for potential false-negatives in highly fine-granular queries. 32 32 32 +==== Get started: Query by a "bounding box" (hyperrectangle) ==== 33 33 34 +{{code}} 35 +curl -X 'POST' \ 36 + 'https://spatial.kg.ebrains.eu/spatial-search/cores/ebrains/spatial_objects' \ 37 + -H 'accept: application/json' \ 38 + -H 'Content-Type: application/json' \ 39 + -d '{ 40 + "filters": "inside(hyperrectangle{[50.0,146.0,227.0], [51.0, 149.0, 228.0], \"AMB-CCF_v3-RAS\"})" 41 +}' 42 +{{/code}} 34 34 44 +As you can see, you're sending a POST request to the endpoint at **https:~/~/spatial.kg.ebrains.eu/spatial-search/cores/ebrains/spatial_objects **with a payload defining a geometry of interest. In this case, we're looking for all objects that are **inside **a **hyperrectangle **defined by its lowest and highest point in the coordinate system of the coordinate space **AMB-CCF_v3-RAS**. This query will return you an array of ids of the objects located within the geometry which you then can use to conveniently query the KG either through the [[Instance API>>https://core.kg.ebrains.eu/swagger-ui/index.html#/2%20Advanced/getInstancesByIds]] or the [[Query API>>https://core.kg.ebrains.eu/swagger-ui/index.html#/1%20Basic/runDynamicQuery]] to access detailed meta information. 45 + 46 + 47 +==== Query by hypersphere ==== 48 + 49 +Alongside the possibility to use hyperrectangles for querying the spatial search, you can also use hyperspheres: 50 + 51 +{{code}} 52 +{ 53 + "filters": "inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"})" 54 +} 55 +{{/code}} 56 + 57 +It is defined by the center of the sphere with its coordinates, the radius in coordinate units and the coordinate space of the given coordinates (in this case again AMB-CCF_v3-RAS) 58 + 59 + 60 + 61 +==== Advanced use: Union geometries for complex queries ==== 62 + 63 +To build arbitrarily complex geometries, it is possible to combine hyperrectangles and hyperspheres via (nested) unions: 64 + 65 +{{code}} 66 +{ 67 + "filters": " 68 + union( 69 + union( 70 + inside(hyperrectangle{[50.0,146.0,227.0], [51.0, 149.0, 228.0], \"AMB-CCF_v3-RAS\"}), 71 + inside(hyperrectangle{[120.0,146.0,227.0], [150.0, 180.0, 300.0], \"AMB-CCF_v3-RAS\"}) 72 + ), 73 + inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"}) 74 + )" 75 +} 76 +{{/code}} 77 + 78 + 79 + 80 + 35 35 36 36 ))) 37 37