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
-
... ... @@ -28,9 +28,10 @@ 28 28 29 29 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 -== Get started: Query by a "bounding box" (hyperrectangle) == 32 32 33 -{{code language="bash" layout="LINENUMBERS"}} 32 +==== Get started: Query by a "bounding box" (hyperrectangle) ==== 33 + 34 +{{code}} 34 34 curl -X 'POST' \ 35 35 'https://spatial.kg.ebrains.eu/spatial-search/cores/ebrains/spatial_objects' \ 36 36 -H 'accept: application/json' \ ... ... @@ -42,11 +42,12 @@ 42 42 43 43 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. 44 44 45 -== Query by hypersphere == 46 46 47 +==== Query by hypersphere ==== 48 + 47 47 Alongside the possibility to use hyperrectangles for querying the spatial search, you can also use hyperspheres: 48 48 49 -{{code language="javascript" layout="LINENUMBERS"}}51 +{{code}} 50 50 { 51 51 "filters": "inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"})" 52 52 } ... ... @@ -54,28 +54,28 @@ 54 54 55 55 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) 56 56 57 -== Advanced use: Union geometries for complex queries == 58 58 60 + 61 +==== Advanced use: Union geometries for complex queries ==== 62 + 59 59 To build arbitrarily complex geometries, it is possible to combine hyperrectangles and hyperspheres via (nested) unions: 60 60 61 -{{code language="javascript" layout="LINENUMBERS"}}65 +{{code}} 62 62 { 63 - "filters": "union(union(inside(hyperrectangle{[50.0,146.0,227.0], [51.0, 149.0, 228.0], \"AMB-CCF_v3-RAS\"}), inside(hyperrectangle{[120.0,146.0,227.0], [150.0, 180.0, 300.0], \"AMB-CCF_v3-RAS\"})),inside(hypersphere{[50.0,146.0,227.0], 2, \"AMB-CCF_v3-RAS\"}))" 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 + )" 64 64 } 65 65 {{/code}} 66 66 67 67 68 -= Technical details of the ingestion pipeline = 69 69 70 -The current pipeline is regularly parsing locareJSON files registered in the KG. 71 71 72 -* Points are translated to the data structure of spatial search without manipulation 73 -* Polyhedrons are translated via the [[vtk>>https://pypi.org/project/vtk/]] library into a point cloud of (currently) a density of 1 coordinate unit (by ray-casting on an obb-tree) 74 -* Other geometries are work-in-progress 75 - 76 -The resulting files (all representing point-clouds) as well as the space definitions are uploaded to the [[bucket of this collab>>https://wiki.ebrains.eu/bin/view/Collabs/kg-spatial-search/Bucket]]. A cron job running on the spatial search server pulls the files from the repo and rebuilds the databases index in regular intervals. 77 - 78 - 79 79 80 80 ))) 81 81