{ "cells": [ { "cell_type": "markdown", "id": "a4d2c86d-7e3a-499d-b1e0-840bb79ce435", "metadata": {}, "source": [ "# Generalities about OGC Geospatial extensions for SQL #\n", "\n", "**Contents provided by F. Lovergine**" ] }, { "cell_type": "markdown", "id": "edfe17de-5e3e-4d77-a32d-7a08c3766db2", "metadata": {}, "source": [ "*Structured Query Language (SQL)* is a family of languages implemented since 1974 by IBM and many others to implement the so called _relational model_ for structured data.\n", "In brief, a relational data model is a representation of the abstract application domain _data model_ in terms of multiple tables (rows) of attributes (columns) and relationships (i.e. linking attributes) amont them. Such a kind of tables can be familiar for most of you as a _dataframe_ in the *pandas* package for Python or the R language." ] }, { "cell_type": "markdown", "id": "9a287e24-8c8b-4005-a1c2-7450ddade7f4", "metadata": {}, "source": [ "SQL implemnted multiple sub-languages to create, register, update and query a system of tables based on the so-called _relational algebra_ as directly inspired to the mathematical _theory of sets_ where any type of operation can be expressed in terms of unions, intersections, differences, includes, negations and a few other simple operators.\n", "\n", "Originally defined in pure _declarative_ terms, today the current SQL standard also includes procedural, types, and control flow.\n", "The current ANSI/ISO standard is generally extended by implementations." ] }, { "cell_type": "markdown", "id": "b82f1b15-13bf-4a42-8e2f-f8c8cc8f782d", "metadata": {}, "source": [ "An example of an SQL query on a table (courtesy of Wikipedia):" ] }, { "cell_type": "code", "execution_count": 1, "id": "f9aff7f9-fe80-4a60-b613-9dcc3086ee9c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 1, "metadata": { "image/png": { "height": 600, "width": 800 } }, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(\"../images/sql.png\", width=800, height=600)" ] }, { "cell_type": "markdown", "id": "19b50c01-33df-49c9-ad02-861699b24c95", "metadata": {}, "source": [ "The _Open Geospatial Consortium (OGC)_ has promoted 1994 a standard for geospatial queries, that is currently implemented by most of the relational databases." ] }, { "cell_type": "markdown", "id": "97d8be41-e3d3-4574-8f04-339a01120ba2", "metadata": {}, "source": [ "See [OGC Standards](https://www.ogc.org/standards/) for complete information." ] }, { "cell_type": "markdown", "id": "0053ff62-0c83-4085-b195-bc634493f682", "metadata": {}, "source": [ "A non exhaustive list of real-world databases (DBMS) with geospatial extensions includes:\n", "\n", "- Postgres/**PostGIS**\n", "- MySQL/Mariadb\n", "- Oracle\n", "- Ingres\n", "- MS/SQL\n", "- Sybase\n", "- Sqlite/**Spatialite**/Geopackage\n", "\n", "The bold ones are those typically used in the FOSS world. \n", "_Note that `geopackage` is roughly an exchange format, not a complete Spatial SQL implementation_." ] }, { "cell_type": "markdown", "id": "857bdb34-da8b-431f-ab31-66e5ab149689", "metadata": {}, "source": [ "Those DBMS could include or not even a support for datacubes and rasters, but the OGC Simple Feature Access standard only deals with _vector data_. Often in the real world, DBMS are only used for rasters metadata, while the images/maps are maintained in an specialized object storage." ] }, { "cell_type": "markdown", "id": "abb0c87a-be65-4886-af66-32b63adc4ef3", "metadata": {}, "source": [ "## Spatialite, a portable relational geodatabase ##" ] }, { "cell_type": "markdown", "id": "a55b43b2-dfb9-440b-b606-e0face065815", "metadata": {}, "source": [ "* A single file and single library solution\n", "* Multi-threaded\n", "* OGC compliant \n", "* Fast and compact, no server required\n", "* Very scalable even for tons of GBs of data\n", "* Based on SQLite engine" ] }, { "cell_type": "markdown", "id": "fc74d88f-1d33-47e3-abcb-aff9fec413b7", "metadata": {}, "source": [ "The [Spatialte documentation](https://www.gaia-gis.it/gaia-sins/spatialite-sql-5.1.0.html) include a complete reference of its SQL geospatial dialect, while [SQLite documentation](https://www.sqlite.org/docs.html) gives all details about the generalites of the core relational database." ] }, { "cell_type": "markdown", "id": "d267c739-f0d4-4f66-a136-f98de2fcffc4", "metadata": {}, "source": [ "OSGeoLive already includes Spatialite, for other Debian derived distributions you can install as follows:\n", "\n", "```\n", "sudo apt install libsqlite3-mod-spatialite spatialite-bin spatialite-gui\n", "```\n", "You can verify to have the required software installed as follows:\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "8bf5504b-d9a6-4023-8185-29856c7f5a10", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " SQLite -vector- (rw+v): SQLite / Spatialite\n" ] } ], "source": [ "!ogrinfo --formats | grep -i spatialite" ] }, { "cell_type": "code", "execution_count": 3, "id": "53136205-235b-489a-8a9e-bf9ee32701ff", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Rasterlite -raster- (rwvs): Rasterlite\n" ] } ], "source": [ "!gdalinfo --formats | grep -i rasterlite" ] }, { "cell_type": "markdown", "id": "b9aef083-86d1-41f0-8975-281917ac9b5b", "metadata": {}, "source": [ "A spatialite package for Python can also be installed (use an environment):" ] }, { "cell_type": "code", "execution_count": 4, "id": "eeb0dba2-6e98-47fe-a751-a6736d324233", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: spatialite in /home/user/venv/lib/python3.10/site-packages (0.0.3)\n" ] } ], "source": [ "!pip3 install spatialite" ] }, { "cell_type": "markdown", "id": "23390cff-dd66-4a97-a6a5-6001c24969e6", "metadata": {}, "source": [ "You can verify that it is working with:" ] }, { "cell_type": "code", "execution_count": 5, "id": "43277ae2-d304-4e87-93ca-ff6134c293b9", "metadata": {}, "outputs": [], "source": [ "import spatialite as sp" ] }, { "cell_type": "code", "execution_count": 6, "id": "5bce2333-6e7c-4db3-bc16-2c9359b1f0a0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5.0.1\n" ] } ], "source": [ "with sp.connect('new.db') as db:\n", " print(db.execute('SELECT spatialite_version()').fetchone()[0])" ] }, { "cell_type": "code", "execution_count": 7, "id": "28211dfd-4a61-4a54-87c4-11a2d1574541", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SpatiaLite version ..: 5.0.1\tSupported Extensions:\n", "\t- 'VirtualShape'\t[direct Shapefile access]\n", "\t- 'VirtualDbf'\t\t[direct DBF access]\n", "\t- 'VirtualText'\t\t[direct CSV/TXT access]\n", "\t- 'VirtualGeoJSON'\t\t[direct GeoJSON access]\n", "\t- 'VirtualXL'\t\t[direct XLS access]\n", "\t- 'VirtualNetwork'\t[Dijkstra shortest path - obsolete]\n", "\t- 'RTree'\t\t[Spatial Index - R*Tree]\n", "\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n", "\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n", "\t- 'VirtualBBox'\t\t[BoundingBox tables]\n", "\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n", "\t- 'VirtualElementary'\t[ElemGeoms metahandler]\n", "\t- 'VirtualRouting'\t[Dijkstra shortest path - advanced]\n", "\t- 'VirtualKNN'\t[K-Nearest Neighbors metahandler]\n", "\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n", "\t- 'VirtualXPath'\t[XML Path Language - XPath]\n", "\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n", "PROJ version ........: Rel. 9.1.1, December 1st, 2022\n", "GEOS version ........: 3.11.1-CAPI-1.17.1\n", "RTTOPO version ......: 1.1.0\n", "TARGET CPU ..........: x86_64-linux-gnu\n", "ElementaryGeometries raster_coverages_ref_sys \n", "ISO_metadata raster_coverages_srid \n", "ISO_metadata_reference rl2map_configurations \n", "ISO_metadata_view rl2map_configurations_view \n", "KNN spatial_ref_sys \n", "SE_external_graphics spatial_ref_sys_all \n", "SE_external_graphics_view spatial_ref_sys_aux \n", "SE_fonts spatialite_history \n", "SE_fonts_view sql_statements_log \n", "SE_raster_styled_layers stored_procedures \n", "SE_raster_styled_layers_view stored_variables \n", "SE_raster_styles topologies \n", "SE_raster_styles_view vector_coverages \n", "SE_vector_styled_layers vector_coverages_keyword \n", "SE_vector_styled_layers_view vector_coverages_ref_sys \n", "SE_vector_styles vector_coverages_srid \n", "SE_vector_styles_view vector_layers \n", "SpatialIndex vector_layers_auth \n", "data_licenses vector_layers_field_infos \n", "geom_cols_ref_sys vector_layers_statistics \n", "geometry_columns views_geometry_columns \n", "geometry_columns_auth views_geometry_columns_auth \n", "geometry_columns_field_infos views_geometry_columns_field_infos\n", "geometry_columns_statistics views_geometry_columns_statistics \n", "geometry_columns_time virts_geometry_columns \n", "idx_ISO_metadata_geometry virts_geometry_columns_auth \n", "idx_ISO_metadata_geometry_node virts_geometry_columns_field_infos\n", "idx_ISO_metadata_geometry_parent virts_geometry_columns_statistics \n", "idx_ISO_metadata_geometry_rowid wms_getcapabilities \n", "networks wms_getmap \n", "raster_coverages wms_ref_sys \n", "raster_coverages_keyword wms_settings \n" ] } ], "source": [ "!spatialite new.db '.tables'" ] }, { "cell_type": "markdown", "id": "5c78dcee-c358-47a9-9ed2-6890de4d1bb5", "metadata": {}, "source": [ "**Fun fuct**\n", "\n", "Don't make typos in `connect()`, else you will create a new empty _Spatialite_ database instead of getting your data :-)\n", "Note that spatialite package is a simple wrapper for the main `sqlite3` package that simply load an extension after opening the _SQLite_ database. So, find the full documentation for the package functions reference there." ] }, { "cell_type": "markdown", "id": "d078f7d9-835e-4f62-a5ee-afa6d6b1ed1c", "metadata": {}, "source": [ "**Hands on** \n", "\n", "Take your time to become confident with `spatialite` and `spatialite-gui` commands which are the main administrative tools for your data. Have a look to their man pages, help and command line options." ] }, { "cell_type": "markdown", "id": "60350309-8f2c-4c44-9732-9b41ba50ca77", "metadata": {}, "source": [ "**Hint**\n", "\n", "Some key aspects of Sqlite/Spatialite are concerning concurrent accesses, transactions and cache, all aspects governed by so \n", "called _pragma directives_ which are essential for advanced uses (e.g. big data, multi-threading, performance tuning)." ] }, { "cell_type": "markdown", "id": "979d53ef-6e1c-4c1a-a382-1d18665c3582", "metadata": {}, "source": [ "---\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "id": "6d7ec886-c074-4997-a861-6af3a6cd2e19", "metadata": {}, "source": [ "**Spatialite and Geopackage files are flavors of the same basic engine (but SL is the most complete as a geo database)**" ] }, { "cell_type": "code", "execution_count": 9, "id": "b228ec23-5587-433c-80a9-a331546d87c7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tree_height/geodata_vector/eu_x_y_height_select.gpkg: SQLite 3.x database (OGC GeoPackage file), user version 10200, last written using SQLite version 3021000, file counter 2635192, database pages 34553, cookie 0xf2, schema 4, UTF-8, version-valid-for 2635192\n" ] } ], "source": [ "! file tree_height/geodata_vector/eu_x_y_height_select.gpkg" ] }, { "cell_type": "code", "execution_count": 10, "id": "8ba3eeb6-6d22-46d1-9013-00160d1c2cb5", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "new.db: SQLite 3.x database, last written using SQLite version 3037002, file counter 1, database pages 1698, cookie 0x118, schema 4, UTF-8, version-valid-for 1\n" ] } ], "source": [ "! file new.db" ] }, { "cell_type": "markdown", "id": "44f103cf-9017-488e-9035-cba2a3302695", "metadata": {}, "source": [ "Let's see a simple importing of data into Spatialite" ] }, { "cell_type": "code", "execution_count": 11, "id": "681112a5-2ee2-4e7f-8c38-288bfa9f68b6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/geodata_vector/eu_x_y_height_select.gpkg'\n", " using driver `GPKG' successful.\n", "\n", "Layer name: New Layer\n", "Geometry: Point\n", "Feature Count: 1267239\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "GEOGCRS[\"WGS 84\",\n", " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n", " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n", " MEMBER[\"World Geodetic System 1984 (G730)\"],\n", " MEMBER[\"World Geodetic System 1984 (G873)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n", " MEMBER[\"World Geodetic System 1984 (G2139)\"],\n", " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n", " LENGTHUNIT[\"metre\",1]],\n", " ENSEMBLEACCURACY[2.0]],\n", " PRIMEM[\"Greenwich\",0,\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " CS[ellipsoidal,2],\n", " AXIS[\"geodetic latitude (Lat)\",north,\n", " ORDER[1],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " AXIS[\"geodetic longitude (Lon)\",east,\n", " ORDER[2],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " USAGE[\n", " SCOPE[\"Horizontal component of 3D system.\"],\n", " AREA[\"World.\"],\n", " BBOX[-90,-180,90,180]],\n", " ID[\"EPSG\",4326]]\n", "Data axis to CRS axis mapping: 2,1\n", "FID Column = fid\n", "Geometry Column = geom\n", "ID: Integer (0.0)\n", "height: Real (0.0)\n" ] } ], "source": [ "! ogrinfo -so -al tree_height/geodata_vector/eu_x_y_height_select.gpkg" ] }, { "cell_type": "code", "execution_count": 13, "id": "270b9046-3d63-496a-a9ea-6b4806045b32", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/geodata_vector/eu_x_y_height_select.gpkg'\n", " using driver `GPKG' successful.\n", "\n", "Layer name: New Layer\n", "Geometry: Point\n", "Feature Count: 5\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "GEOGCRS[\"WGS 84\",\n", " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n", " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n", " MEMBER[\"World Geodetic System 1984 (G730)\"],\n", " MEMBER[\"World Geodetic System 1984 (G873)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n", " MEMBER[\"World Geodetic System 1984 (G2139)\"],\n", " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n", " LENGTHUNIT[\"metre\",1]],\n", " ENSEMBLEACCURACY[2.0]],\n", " PRIMEM[\"Greenwich\",0,\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " CS[ellipsoidal,2],\n", " AXIS[\"geodetic latitude (Lat)\",north,\n", " ORDER[1],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " AXIS[\"geodetic longitude (Lon)\",east,\n", " ORDER[2],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " USAGE[\n", " SCOPE[\"Horizontal component of 3D system.\"],\n", " AREA[\"World.\"],\n", " BBOX[-90,-180,90,180]],\n", " ID[\"EPSG\",4326]]\n", "Data axis to CRS axis mapping: 2,1\n", "FID Column = fid\n", "Geometry Column = geom\n", "ID: Integer (0.0)\n", "height: Real (0.0)\n", "OGRFeature(New Layer):1\n", " ID (Integer) = 1\n", " height (Real) = 49.727499\n", " POINT (6.050001 49.727499)\n", "\n", "OGRFeature(New Layer):2\n", " ID (Integer) = 2\n", " height (Real) = 49.922155\n", " POINT (6.0500017 49.922155)\n", "\n", "OGRFeature(New Layer):3\n", " ID (Integer) = 3\n", " height (Real) = 48.602377\n", " POINT (6.0500021 48.602377)\n", "\n", "OGRFeature(New Layer):4\n", " ID (Integer) = 4\n", " height (Real) = 48.151979\n", " POINT (6.0500089 48.151979)\n", "\n", "OGRFeature(New Layer):5\n", " ID (Integer) = 5\n", " height (Real) = 49.58841\n", " POINT (6.0500102 49.58841)\n", "\n" ] } ], "source": [ "! ogrinfo -al tree_height/geodata_vector/eu_x_y_height_select.gpkg -where 'fid<=5'" ] }, { "cell_type": "code", "execution_count": 14, "id": "d6521ee9-fc8f-4140-8f3b-7e0ebc864715", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "real\t0m48.982s\n", "user\t0m23.634s\n", "sys\t0m11.009s\n" ] } ], "source": [ "! time ogr2ogr -f 'ESRI Shapefile' /tmp/eu_x_y_height_select tree_height/geodata_vector/eu_x_y_height_select.gpkg" ] }, { "cell_type": "code", "execution_count": 15, "id": "993b31c8-fd7a-47cc-9eff-d8e037464315", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "the SPATIAL_REF_SYS table already contains some row(s)\n", "========\n", "Loading shapefile at '/tmp/eu_x_y_height_select/New Layer' into SQLite table 'heights'\n", "\n", "BEGIN;\n", "CREATE TABLE \"heights\" (\n", "\"pk_uid\" INTEGER PRIMARY KEY AUTOINCREMENT,\n", "\"id\" INTEGER,\n", "\"height\" DOUBLE);\n", "SELECT AddGeometryColumn('heights', 'geometry', -1, 'POINT', 'XY');\n", "COMMIT;\n", "\n", "Inserted 1267239 rows into 'heights' from SHAPEFILE\n", "========\n" ] } ], "source": [ "! spatialite -silent /tmp/eu_x_y_height_select.splite '.loadshp \"/tmp/eu_x_y_height_select/New\\ Layer\" heights utf8'" ] }, { "cell_type": "code", "execution_count": 17, "id": "14a3cce0-ac92-4547-a813-f3ba8d82f8e1", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "49.3651054490831|47.976346|49.95|0.468988390097542\n" ] } ], "source": [ "! spatialite -silent /tmp/eu_x_y_height_select.splite \"select avg(height),min(height),max(height),sqrt(avg(height*height)-avg(height)*avg(height)) from heights\"" ] }, { "cell_type": "markdown", "id": "958bfd0e-bfdc-4014-a971-fdf935955113", "metadata": {}, "source": [ "_Note that function set for Spatialite/SQLite is somehow simplified, sometimes other useful functions could be provided as an add-on extension_" ] }, { "cell_type": "markdown", "id": "9640cebf-0436-4f23-b2a4-29097ca36f34", "metadata": {}, "source": [ "**Hint**\n", "\n", "In order to perform write (i.e. create/delete/drop/insert/update ops) operations it is generally required to establish a _transaction_ in order to maximize performances. This is specifically useful when performing operations programmatically (outside of the CLI tool).\n", "\n", "That allows both:\n", "\n", "* locking the database for access\n", "* doing all-in-one bufferized operations\n", "\n", "Note that default transactions are DEFERRED, so they start at first database access. At logical level, a transaction ensures that the whole set of operations performed can be considered as _atomic_ (i.e. performed/discarded all together)." ] }, { "cell_type": "code", "execution_count": 18, "id": "be19d758-dd3c-47c2-9dbf-09e8e3b391ec", "metadata": {}, "outputs": [ { "data": { "image/png": "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jYMHD6K4uBhffvmlWF2Q1UVNXiUlJTh37hz69esHXV1dqWW+/PJLfP311zh79iz69OkjtYynpyfOnj2L3NxcqeedDx8+4Pz58zh27BiOHz/O3xgZP348OnfuLNe5qri4mD/vvH//nr/Yj4yMxJ49e6CmpoaBAwdi2LBhfL1R5JzToUMHbNu2DREREQgICKi0i7k855FevXrB2NgYO3bswIABA/j3b9++jevXr2PTpk0S683OzsbLly8l3jcwMICenp7MeK5duwag9HtYU8dVmvnz5+PXX3/Fjz/+iCVLlsi9XFXY2tryDd+q/p65urpi0qRJiIqKwh9//AFbW1t0794dPj4++PTTT/H+/XuUlJQAKK1jZa+Hrl69ijFjxqBfv34ICgqSu14NGjQIqampWLJkCWxsbHDnzh1ER0fj6tWraNy4MfLz8yESiTBz5kzY2tri7du32Lx5M3r37o3r16/DyckJY8eORXR0NPbs2YOAgAB+3Xv37kVubi6CgoIAABcuXMAXX3yBiRMnIiwsDESE3bt3o3v37rhy5YrYTZLIyEgEBwcjPj4emZmZmD59Onr37o179+5BTU0NxcXF8PHxwd9//4158+ahcePGOHnyJMaPH4+MjAzMnj27ws996NAhFBQUICIiAkZGRli5ciWGDBmC+/fvw9bWFuvXr4evry9EIhHf9dvExESu45iWloZvvvkG4eHhcHNzQ3x8PObPn4+mTZti8ODBACDXfi0ba0lJCTZs2AB9fX2+y72mpiZmzpyJefPm4cGDBwgMDIS1tTWWL18OoPTGLjc05Oeff4aRkREuXbqEkJAQfPjwAZMmTZIav56eHgwNDZGTk4MHDx5IvcleXWlpaSguLgZQWpezs7P588n8+fOxbNkyWFlZISAgAB9//DHWrFkDAEhISECXLl349YSEhGDNmjVijSSlq+xREZcKVdoEYvIOglXkxQ2G5rKrAKBnz57J/WiL6w539+5dysnJoQcPHtDixYtJIBBITIrXvHnzSgcu9u7dWyzfvzISI5R9de3aVaLryNu3b0lXV5diYmL490JDQ8nc3Fzs0fiUKVMIgNRH79Jw3eEiIyMJqN6kgSdOnKjxulDV+mNjY0OGhoYEgNTV1av8meTpDte4cWPKzc2lrKwsSk5OpiFDhpCmpiYlJiZKlO/cuTP5+fnx/4+LiyNAMukH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\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": { "image/png": { "height": 800, "width": 800 } }, "output_type": "execute_result" } ], "source": [ "from IPython.display import Image\n", "Image(\"../images/transaction.png\" , width = 800, height = 800)" ] }, { "cell_type": "markdown", "id": "d7b07c20-4ac3-4cea-94d0-bf5749251251", "metadata": {}, "source": [ "Let's see some easy operations with SQLite/Spatialite drivers for OGR and the `tree_height` dataset." ] }, { "cell_type": "markdown", "id": "8caf3f38-0e62-4b27-ba55-28bd9f2d06df", "metadata": {}, "source": [ "First of all, create a copy with an explicit suffix for CSV file which can be managed by OGR tools:" ] }, { "cell_type": "code", "execution_count": 19, "id": "fd6eaf3d-fa19-4ded-87d6-d935ae25c890", "metadata": {}, "outputs": [], "source": [ "!cp tree_height/txt/eu_y_x_select_6algorithms_fullTable.txt tree_height/txt/eu_y_x_select_6algorithms_fullTable.csv" ] }, { "cell_type": "code", "execution_count": 20, "id": "7c7cc271-47e3-4cae-a6ea-c1b120846e00", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.csv'\n", " using driver `CSV' successful.\n", "\n", "Layer name: eu_y_x_select_6algorithms_fullTable\n", "Geometry: None\n", "Feature Count: 1267239\n", "Layer SRS WKT:\n", "(unknown)\n", "ID: String (0.0)\n", "X: String (0.0)\n", "Y: String (0.0)\n", "a1_95: String (0.0)\n", "a2_95: String (0.0)\n", "a3_95: String (0.0)\n", "a4_95: String (0.0)\n", "a5_95: String (0.0)\n", "a6_95: String (0.0)\n", "min_rh_95: String (0.0)\n", "max_rh_95: String (0.0)\n", "BEAM: String (0.0)\n", "digital_elev: String (0.0)\n", "elev_low: String (0.0)\n", "qc_a1: String (0.0)\n", "qc_a2: String (0.0)\n", "qc_a3: String (0.0)\n", "qc_a4: String (0.0)\n", "qc_a5: String (0.0)\n", "qc_a6: String (0.0)\n", "se_a1: String (0.0)\n", "se_a2: String (0.0)\n", "se_a3: String (0.0)\n", "se_a4: String (0.0)\n", "se_a5: String (0.0)\n", "se_a6: String (0.0)\n", "deg_fg: String (0.0)\n", "solar_ele: String (0.0)\n" ] } ], "source": [ "!ogrinfo -al -so tree_height/txt/eu_y_x_select_6algorithms_fullTable.csv" ] }, { "cell_type": "code", "execution_count": 21, "id": "13a536f3-11aa-4ba0-834f-ac5a4f2e9f31", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "real\t1m31.803s\n", "user\t1m6.724s\n", "sys\t0m7.813s\n" ] } ], "source": [ "! time ogr2ogr -f SQLite -dsco SPATIALITE=YES -lco LAUNDER=YES -oo X_POSSIBLE_NAMES=X -oo Y_POSSIBLE_NAMES=Y \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.csv\"" ] }, { "cell_type": "markdown", "id": "e6b3eb2a-6e96-4efc-8990-6543aef55287", "metadata": {}, "source": [ "Now, the original CSV file has been ingested as a Spatialite database and many operations can be performed efficiently on both attributes and geometries." ] }, { "cell_type": "code", "execution_count": 22, "id": "21582ecc-c1e0-415c-a247-118917e25204", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: eu_y_x_select_6algorithms_fulltable\n", "Geometry: Point\n", "Feature Count: 1267239\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "(unknown)\n", "FID Column = ogc_fid\n", "Geometry Column = GEOMETRY\n", "id: String (0.0)\n", "x: Real (0.0)\n", "y: Real (0.0)\n", "a1_95: String (0.0)\n", "a2_95: String (0.0)\n", "a3_95: String (0.0)\n", "a4_95: String (0.0)\n", "a5_95: String (0.0)\n", "a6_95: String (0.0)\n", "min_rh_95: String (0.0)\n", "max_rh_95: String (0.0)\n", "beam: String (0.0)\n", "digital_elev: String (0.0)\n", "elev_low: String (0.0)\n", "qc_a1: String (0.0)\n", "qc_a2: String (0.0)\n", "qc_a3: String (0.0)\n", "qc_a4: String (0.0)\n", "qc_a5: String (0.0)\n", "qc_a6: String (0.0)\n", "se_a1: String (0.0)\n", "se_a2: String (0.0)\n", "se_a3: String (0.0)\n", "se_a4: String (0.0)\n", "se_a5: String (0.0)\n", "se_a6: String (0.0)\n", "deg_fg: String (0.0)\n", "solar_ele: String (0.0)\n" ] } ], "source": [ "!ogrinfo -al -so \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\"" ] }, { "cell_type": "code", "execution_count": 23, "id": "ccbae305-5d7a-4111-8558-3e1583659966", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: eu_y_x_select_6algorithms_fulltable\n", "Geometry: Point\n", "Feature Count: 5\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "(unknown)\n", "FID Column = ogc_fid\n", "Geometry Column = GEOMETRY\n", "id: String (0.0)\n", "x: Real (0.0)\n", "y: Real (0.0)\n", "a1_95: String (0.0)\n", "a2_95: String (0.0)\n", "a3_95: String (0.0)\n", "a4_95: String (0.0)\n", "a5_95: String (0.0)\n", "a6_95: String (0.0)\n", "min_rh_95: String (0.0)\n", "max_rh_95: String (0.0)\n", "beam: String (0.0)\n", "digital_elev: String (0.0)\n", "elev_low: String (0.0)\n", "qc_a1: String (0.0)\n", "qc_a2: String (0.0)\n", "qc_a3: String (0.0)\n", "qc_a4: String (0.0)\n", "qc_a5: String (0.0)\n", "qc_a6: String (0.0)\n", "se_a1: String (0.0)\n", "se_a2: String (0.0)\n", "se_a3: String (0.0)\n", "se_a4: String (0.0)\n", "se_a5: String (0.0)\n", "se_a6: String (0.0)\n", "deg_fg: String (0.0)\n", "solar_ele: String (0.0)\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):1\n", " id (String) = 1\n", " x (Real) = 6.050001\n", " y (Real) = 49.727499\n", " a1_95 (String) = 3139\n", " a2_95 (String) = 3139\n", " a3_95 (String) = 3139\n", " a4_95 (String) = 3120\n", " a5_95 (String) = 3139\n", " a6_95 (String) = 3139\n", " min_rh_95 (String) = 3120\n", " max_rh_95 (String) = 3139\n", " beam (String) = 5\n", " digital_elev (String) = 4.1e+02\n", " elev_low (String) = 383.72153\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.962\n", " se_a2 (String) = 0.984\n", " se_a3 (String) = 0.968\n", " se_a4 (String) = 0.962\n", " se_a5 (String) = 0.989\n", " se_a6 (String) = 0.979\n", " deg_fg (String) = 0\n", " solar_ele (String) = 17.7\n", " POINT (6.050001 49.727499)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):2\n", " id (String) = 2\n", " x (Real) = 6.0500017\n", " y (Real) = 49.922155\n", " a1_95 (String) = 1022\n", " a2_95 (String) = 2303\n", " a3_95 (String) = 970\n", " a4_95 (String) = 872\n", " a5_95 (String) = 5596\n", " a6_95 (String) = 1524\n", " min_rh_95 (String) = 872\n", " max_rh_95 (String) = 5596\n", " beam (String) = 5\n", " digital_elev (String) = 2.9e+02\n", " elev_low (String) = 2374.1411\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.948\n", " se_a2 (String) = 0.990\n", " se_a3 (String) = 0.960\n", " se_a4 (String) = 0.948\n", " se_a5 (String) = 0.994\n", " se_a6 (String) = 0.980\n", " deg_fg (String) = 0\n", " solar_ele (String) = 43.7\n", " POINT (6.0500017 49.922155)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):3\n", " id (String) = 3\n", " x (Real) = 6.0500021\n", " y (Real) = 48.602377\n", " a1_95 (String) = 380\n", " a2_95 (String) = 1336\n", " a3_95 (String) = 332\n", " a4_95 (String) = 362\n", " a5_95 (String) = 1336\n", " a6_95 (String) = 1340\n", " min_rh_95 (String) = 332\n", " max_rh_95 (String) = 1340\n", " beam (String) = 4\n", " digital_elev (String) = 4.4e+02\n", " elev_low (String) = 435.97781\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.947\n", " se_a2 (String) = 0.975\n", " se_a3 (String) = 0.956\n", " se_a4 (String) = 0.947\n", " se_a5 (String) = 0.981\n", " se_a6 (String) = 0.968\n", " deg_fg (String) = 0\n", " solar_ele (String) = 0.2\n", " POINT (6.0500021 48.602377)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):4\n", " id (String) = 4\n", " x (Real) = 6.0500089\n", " y (Real) = 48.151979\n", " a1_95 (String) = 3153\n", " a2_95 (String) = 3142\n", " a3_95 (String) = 3142\n", " a4_95 (String) = 3127\n", " a5_95 (String) = 3138\n", " a6_95 (String) = 3142\n", " min_rh_95 (String) = 3127\n", " max_rh_95 (String) = 3153\n", " beam (String) = 2\n", " digital_elev (String) = 4.5e+02\n", " elev_low (String) = 422.00537\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.930\n", " se_a2 (String) = 0.970\n", " se_a3 (String) = 0.943\n", " se_a4 (String) = 0.930\n", " se_a5 (String) = 0.978\n", " se_a6 (String) = 0.962\n", " deg_fg (String) = 0\n", " solar_ele (String) = -14.2\n", " POINT (6.0500089 48.151979)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):5\n", " id (String) = 5\n", " x (Real) = 6.0500102\n", " y (Real) = 49.58841\n", " a1_95 (String) = 666\n", " a2_95 (String) = 4221\n", " a3_95 (String) = 651\n", " a4_95 (String) = 33\n", " a5_95 (String) = 5611\n", " a6_95 (String) = 2723\n", " min_rh_95 (String) = 33\n", " max_rh_95 (String) = 5611\n", " beam (String) = 8\n", " digital_elev (String) = 3.7e+02\n", " elev_low (String) = 2413.7483\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.941\n", " se_a2 (String) = 0.983\n", " se_a3 (String) = 0.946\n", " se_a4 (String) = 0.941\n", " se_a5 (String) = 0.992\n", " se_a6 (String) = 0.969\n", " deg_fg (String) = 0\n", " solar_ele (String) = 22.1\n", " POINT (6.0500102 49.58841)\n", "\n" ] } ], "source": [ "!ogrinfo -al \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" -where 'CastToInteger(id) <= 5'" ] }, { "cell_type": "code", "execution_count": 25, "id": "52ff13da-de1a-411a-a438-9ea31cfc4dc4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: eu_y_x_select_6algorithms_fulltable\n", "Geometry: Point\n", "Feature Count: 5\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "(unknown)\n", "FID Column = ogc_fid\n", "Geometry Column = GEOMETRY\n", "id: String (0.0)\n", "x: Real (0.0)\n", "y: Real (0.0)\n", "a1_95: String (0.0)\n", "a2_95: String (0.0)\n", "a3_95: String (0.0)\n", "a4_95: String (0.0)\n", "a5_95: String (0.0)\n", "a6_95: String (0.0)\n", "min_rh_95: String (0.0)\n", "max_rh_95: String (0.0)\n", "beam: String (0.0)\n", "digital_elev: String (0.0)\n", "elev_low: String (0.0)\n", "qc_a1: String (0.0)\n", "qc_a2: String (0.0)\n", "qc_a3: String (0.0)\n", "qc_a4: String (0.0)\n", "qc_a5: String (0.0)\n", "qc_a6: String (0.0)\n", "se_a1: String (0.0)\n", "se_a2: String (0.0)\n", "se_a3: String (0.0)\n", "se_a4: String (0.0)\n", "se_a5: String (0.0)\n", "se_a6: String (0.0)\n", "deg_fg: String (0.0)\n", "solar_ele: String (0.0)\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):1\n", " id (String) = 1\n", " x (Real) = 6.050001\n", " y (Real) = 49.727499\n", " a1_95 (String) = 3139\n", " a2_95 (String) = 3139\n", " a3_95 (String) = 3139\n", " a4_95 (String) = 3120\n", " a5_95 (String) = 3139\n", " a6_95 (String) = 3139\n", " min_rh_95 (String) = 3120\n", " max_rh_95 (String) = 3139\n", " beam (String) = 5\n", " digital_elev (String) = 4.1e+02\n", " elev_low (String) = 383.72153\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.962\n", " se_a2 (String) = 0.984\n", " se_a3 (String) = 0.968\n", " se_a4 (String) = 0.962\n", " se_a5 (String) = 0.989\n", " se_a6 (String) = 0.979\n", " deg_fg (String) = 0\n", " solar_ele (String) = 17.7\n", " POINT (6.050001 49.727499)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):2\n", " id (String) = 2\n", " x (Real) = 6.0500017\n", " y (Real) = 49.922155\n", " a1_95 (String) = 1022\n", " a2_95 (String) = 2303\n", " a3_95 (String) = 970\n", " a4_95 (String) = 872\n", " a5_95 (String) = 5596\n", " a6_95 (String) = 1524\n", " min_rh_95 (String) = 872\n", " max_rh_95 (String) = 5596\n", " beam (String) = 5\n", " digital_elev (String) = 2.9e+02\n", " elev_low (String) = 2374.1411\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.948\n", " se_a2 (String) = 0.990\n", " se_a3 (String) = 0.960\n", " se_a4 (String) = 0.948\n", " se_a5 (String) = 0.994\n", " se_a6 (String) = 0.980\n", " deg_fg (String) = 0\n", " solar_ele (String) = 43.7\n", " POINT (6.0500017 49.922155)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):3\n", " id (String) = 3\n", " x (Real) = 6.0500021\n", " y (Real) = 48.602377\n", " a1_95 (String) = 380\n", " a2_95 (String) = 1336\n", " a3_95 (String) = 332\n", " a4_95 (String) = 362\n", " a5_95 (String) = 1336\n", " a6_95 (String) = 1340\n", " min_rh_95 (String) = 332\n", " max_rh_95 (String) = 1340\n", " beam (String) = 4\n", " digital_elev (String) = 4.4e+02\n", " elev_low (String) = 435.97781\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.947\n", " se_a2 (String) = 0.975\n", " se_a3 (String) = 0.956\n", " se_a4 (String) = 0.947\n", " se_a5 (String) = 0.981\n", " se_a6 (String) = 0.968\n", " deg_fg (String) = 0\n", " solar_ele (String) = 0.2\n", " POINT (6.0500021 48.602377)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):4\n", " id (String) = 4\n", " x (Real) = 6.0500089\n", " y (Real) = 48.151979\n", " a1_95 (String) = 3153\n", " a2_95 (String) = 3142\n", " a3_95 (String) = 3142\n", " a4_95 (String) = 3127\n", " a5_95 (String) = 3138\n", " a6_95 (String) = 3142\n", " min_rh_95 (String) = 3127\n", " max_rh_95 (String) = 3153\n", " beam (String) = 2\n", " digital_elev (String) = 4.5e+02\n", " elev_low (String) = 422.00537\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.930\n", " se_a2 (String) = 0.970\n", " se_a3 (String) = 0.943\n", " se_a4 (String) = 0.930\n", " se_a5 (String) = 0.978\n", " se_a6 (String) = 0.962\n", " deg_fg (String) = 0\n", " solar_ele (String) = -14.2\n", " POINT (6.0500089 48.151979)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):5\n", " id (String) = 5\n", " x (Real) = 6.0500102\n", " y (Real) = 49.58841\n", " a1_95 (String) = 666\n", " a2_95 (String) = 4221\n", " a3_95 (String) = 651\n", " a4_95 (String) = 33\n", " a5_95 (String) = 5611\n", " a6_95 (String) = 2723\n", " min_rh_95 (String) = 33\n", " max_rh_95 (String) = 5611\n", " beam (String) = 8\n", " digital_elev (String) = 3.7e+02\n", " elev_low (String) = 2413.7483\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.941\n", " se_a2 (String) = 0.983\n", " se_a3 (String) = 0.946\n", " se_a4 (String) = 0.941\n", " se_a5 (String) = 0.992\n", " se_a6 (String) = 0.969\n", " deg_fg (String) = 0\n", " solar_ele (String) = 22.1\n", " POINT (6.0500102 49.58841)\n", "\n" ] } ], "source": [ "!ogrinfo -al \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" -where 'ogc_fid <= 5'" ] }, { "cell_type": "markdown", "id": "56ba21bf-6d86-43bd-a324-e6d8b578523c", "metadata": {}, "source": [ "Using a geospatial database it is possibile to perform easily geoprocessing operations on both attributes and geometries, for instance:" ] }, { "cell_type": "code", "execution_count": 26, "id": "adcb1cab-2fa5-4f17-bb5e-84c9e1ba9cba", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: SELECT\n", "Geometry: None\n", "Feature Count: 1\n", "Layer SRS WKT:\n", "(unknown)\n", "avg(qc_a1): Real (0.0)\n", "OGRFeature(SELECT):0\n", " avg(qc_a1) (Real) = 0.802981915802781\n", "\n" ] } ], "source": [ "# A simple average on one of the fields for all rows, note that in most of the case, casting is automagically done...\n", "!ogrinfo \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" -dialect SQLite -sql 'select avg(qc_a1) from eu_y_x_select_6algorithms_fullTable'" ] }, { "cell_type": "code", "execution_count": 27, "id": "6d38e1cb-91e0-41bc-9432-3c7cecf19322", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: eu_y_x_select_6algorithms_fulltable\n", "Geometry: Point\n", "Feature Count: 5\n", "Extent: (6.050001, 47.976346) - (9.950000, 49.950000)\n", "Layer SRS WKT:\n", "(unknown)\n", "FID Column = ogc_fid\n", "Geometry Column = GEOMETRY\n", "id: String (0.0)\n", "x: Real (0.0)\n", "y: Real (0.0)\n", "a1_95: String (0.0)\n", "a2_95: String (0.0)\n", "a3_95: String (0.0)\n", "a4_95: String (0.0)\n", "a5_95: String (0.0)\n", "a6_95: String (0.0)\n", "min_rh_95: String (0.0)\n", "max_rh_95: String (0.0)\n", "beam: String (0.0)\n", "digital_elev: String (0.0)\n", "elev_low: String (0.0)\n", "qc_a1: String (0.0)\n", "qc_a2: String (0.0)\n", "qc_a3: String (0.0)\n", "qc_a4: String (0.0)\n", "qc_a5: String (0.0)\n", "qc_a6: String (0.0)\n", "se_a1: String (0.0)\n", "se_a2: String (0.0)\n", "se_a3: String (0.0)\n", "se_a4: String (0.0)\n", "se_a5: String (0.0)\n", "se_a6: String (0.0)\n", "deg_fg: String (0.0)\n", "solar_ele: String (0.0)\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):1\n", " id (String) = 1\n", " x (Real) = 6.050001\n", " y (Real) = 49.727499\n", " a1_95 (String) = 3139\n", " a2_95 (String) = 3139\n", " a3_95 (String) = 3139\n", " a4_95 (String) = 3120\n", " a5_95 (String) = 3139\n", " a6_95 (String) = 3139\n", " min_rh_95 (String) = 3120\n", " max_rh_95 (String) = 3139\n", " beam (String) = 5\n", " digital_elev (String) = 4.1e+02\n", " elev_low (String) = 383.72153\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.962\n", " se_a2 (String) = 0.984\n", " se_a3 (String) = 0.968\n", " se_a4 (String) = 0.962\n", " se_a5 (String) = 0.989\n", " se_a6 (String) = 0.979\n", " deg_fg (String) = 0\n", " solar_ele (String) = 17.7\n", " POINT (6.050001 49.727499)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):2\n", " id (String) = 2\n", " x (Real) = 6.0500017\n", " y (Real) = 49.922155\n", " a1_95 (String) = 1022\n", " a2_95 (String) = 2303\n", " a3_95 (String) = 970\n", " a4_95 (String) = 872\n", " a5_95 (String) = 5596\n", " a6_95 (String) = 1524\n", " min_rh_95 (String) = 872\n", " max_rh_95 (String) = 5596\n", " beam (String) = 5\n", " digital_elev (String) = 2.9e+02\n", " elev_low (String) = 2374.1411\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.948\n", " se_a2 (String) = 0.990\n", " se_a3 (String) = 0.960\n", " se_a4 (String) = 0.948\n", " se_a5 (String) = 0.994\n", " se_a6 (String) = 0.980\n", " deg_fg (String) = 0\n", " solar_ele (String) = 43.7\n", " POINT (6.0500017 49.922155)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):3\n", " id (String) = 3\n", " x (Real) = 6.0500021\n", " y (Real) = 48.602377\n", " a1_95 (String) = 380\n", " a2_95 (String) = 1336\n", " a3_95 (String) = 332\n", " a4_95 (String) = 362\n", " a5_95 (String) = 1336\n", " a6_95 (String) = 1340\n", " min_rh_95 (String) = 332\n", " max_rh_95 (String) = 1340\n", " beam (String) = 4\n", " digital_elev (String) = 4.4e+02\n", " elev_low (String) = 435.97781\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.947\n", " se_a2 (String) = 0.975\n", " se_a3 (String) = 0.956\n", " se_a4 (String) = 0.947\n", " se_a5 (String) = 0.981\n", " se_a6 (String) = 0.968\n", " deg_fg (String) = 0\n", " solar_ele (String) = 0.2\n", " POINT (6.0500021 48.602377)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):4\n", " id (String) = 4\n", " x (Real) = 6.0500089\n", " y (Real) = 48.151979\n", " a1_95 (String) = 3153\n", " a2_95 (String) = 3142\n", " a3_95 (String) = 3142\n", " a4_95 (String) = 3127\n", " a5_95 (String) = 3138\n", " a6_95 (String) = 3142\n", " min_rh_95 (String) = 3127\n", " max_rh_95 (String) = 3153\n", " beam (String) = 2\n", " digital_elev (String) = 4.5e+02\n", " elev_low (String) = 422.00537\n", " qc_a1 (String) = 1\n", " qc_a2 (String) = 1\n", " qc_a3 (String) = 1\n", " qc_a4 (String) = 1\n", " qc_a5 (String) = 1\n", " qc_a6 (String) = 1\n", " se_a1 (String) = 0.930\n", " se_a2 (String) = 0.970\n", " se_a3 (String) = 0.943\n", " se_a4 (String) = 0.930\n", " se_a5 (String) = 0.978\n", " se_a6 (String) = 0.962\n", " deg_fg (String) = 0\n", " solar_ele (String) = -14.2\n", " POINT (6.0500089 48.151979)\n", "\n", "OGRFeature(eu_y_x_select_6algorithms_fulltable):5\n", " id (String) = 5\n", " x (Real) = 6.0500102\n", " y (Real) = 49.58841\n", " a1_95 (String) = 666\n", " a2_95 (String) = 4221\n", " a3_95 (String) = 651\n", " a4_95 (String) = 33\n", " a5_95 (String) = 5611\n", " a6_95 (String) = 2723\n", " min_rh_95 (String) = 33\n", " max_rh_95 (String) = 5611\n", " beam (String) = 8\n", " digital_elev (String) = 3.7e+02\n", " elev_low (String) = 2413.7483\n", " qc_a1 (String) = 0\n", " qc_a2 (String) = 0\n", " qc_a3 (String) = 0\n", " qc_a4 (String) = 0\n", " qc_a5 (String) = 0\n", " qc_a6 (String) = 0\n", " se_a1 (String) = 0.941\n", " se_a2 (String) = 0.983\n", " se_a3 (String) = 0.946\n", " se_a4 (String) = 0.941\n", " se_a5 (String) = 0.992\n", " se_a6 (String) = 0.969\n", " deg_fg (String) = 0\n", " solar_ele (String) = 22.1\n", " POINT (6.0500102 49.58841)\n", "\n" ] } ], "source": [ "# Extract information about the first 5 features\n", "!ogrinfo -al \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" -where 'CastToInteger(id) <= 5'" ] }, { "cell_type": "code", "execution_count": 28, "id": "3b78de8c-f8a3-4f39-969d-4af79c3dff84", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "INFO: Open of `tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite'\n", " using driver `SQLite' successful.\n", "\n", "Layer name: SELECT\n", "Geometry: None\n", "Feature Count: 1\n", "Layer SRS WKT:\n", "(unknown)\n", "count(*): Integer (0.0)\n", "avg(qc_a1): Real (0.0)\n", "OGRFeature(SELECT):0\n", " count(*) (Integer) = 221745\n", " avg(qc_a1) (Real) = 0.808672123384969\n", "\n" ] } ], "source": [ "# Extract average by selecting only points in a 1 degree buffer around one (X,Y), using WKT. Note that\n", "# buffers are approximated by 30 nodes per default.\n", "\n", "!ogrinfo \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" -dialect SQLite -sql \\\n", "\"select count(*),avg(qc_a1) from eu_y_x_select_6algorithms_fullTable where ST_Intersects(geometry,ST_Buffer(ST_GeomFromText('POINT(6.0500102 49.58841)',4326),1,100))\"" ] }, { "cell_type": "markdown", "id": "9ada1b74-1209-433d-b02b-4592f7a16340", "metadata": {}, "source": [ "Of course, the `spatialite` tool can also be used instead of `ogrinfo` to extract information in tabular form." ] }, { "cell_type": "code", "execution_count": 29, "id": "cb200fdf-aed1-49d1-b0f0-471d2c0d8116", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "221745|0.808672123384969\n" ] } ], "source": [ "!spatialite -silent \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" \\\n", "\"select count(*),avg(qc_a1) from eu_y_x_select_6algorithms_fullTable where ST_Intersects(geometry,ST_Buffer(ST_GeomFromText('POINT(6.0500102 49.58841)',4326),1,100))\"" ] }, { "cell_type": "markdown", "id": "76dad660-3d2f-4349-badc-455ce3a11070", "metadata": {}, "source": [ "**Hands on**\n", "\n", "Try to compute the average, min and max of every field in the table and for all the points in a buffer of 1.0 degree buffer around the center of the data extension." ] }, { "cell_type": "markdown", "id": "a75355c4-0850-45ac-8bd5-8c2cb8b4310b", "metadata": {}, "source": [ "_Hint: Try to find Spatialite geo functions to get the bounding box (layer extent) and its centroid, than use them to select the right points. Take your time to take confidence with Spatialite documentation [here](https://www.gaia-gis.it/gaia-sins/spatialite-sql-5.1.0.html). Once found, the query can be derived easily ;-)_" ] }, { "cell_type": "code", "execution_count": 45, "id": "a5b81cf1-2ec4-4037-8c4c-35f8bf844ac3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "POINT(8 48.963173)\n" ] } ], "source": [ "!spatialite -silent \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" \"select ST_AsText(ST_Centroid(GetLayerExtent('eu_y_x_select_6algorithms_fullTable')));\"\n" ] }, { "cell_type": "code", "execution_count": 49, "id": "1269e4fd-5a64-498c-be55-dd2d6633986b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "436343|0.793962547812157|0|1\n" ] } ], "source": [ "!spatialite -silent \"tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite\" \\\n", "\"select count(*),avg(qc_a1),min(qc_a1),max(qc_a1) from eu_y_x_select_6algorithms_fullTable where ST_Intersects(geometry,ST_Buffer((ST_Centroid(GetLayerExtent('eu_y_x_select_6algorithms_fullTable'))),1,100));\"\n" ] }, { "cell_type": "markdown", "id": "92fd112b-698a-44ab-ab12-cf18757a34cb", "metadata": {}, "source": [ "## Using Python to work onto the database" ] }, { "cell_type": "markdown", "id": "16a6a5a1-433b-48eb-ab6f-f786e089c03f", "metadata": {}, "source": [ "The same operations can be conducted using purely Python scripts. So for instance, it is possible to dump database contents." ] }, { "cell_type": "code", "execution_count": 34, "id": "d4dee376-4efe-4281-ba61-09703fa205af", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import spatialite\n", "\n", "db = spatialite.connect('tree_height/txt/eu_y_x_select_6algorithms_fullTable.splite')\n", "cur = db.cursor()\n", "res = cur.execute('SELECT * FROM eu_y_x_select_6algorithms_fullTable')\n", "res" ] }, { "cell_type": "code", "execution_count": 35, "id": "59155a4d-d9e0-4a7e-bfbe-076251fe8742", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1,\n", " '1',\n", " 6.050001,\n", " 49.727499,\n", " '3139',\n", " '3139',\n", " '3139',\n", " '3120',\n", " '3139',\n", " '3139',\n", " '3120',\n", " '3139',\n", " '5',\n", " '4.1e+02',\n", " '383.72153',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '0.962',\n", " '0.984',\n", " '0.968',\n", " '0.962',\n", " '0.989',\n", " '0.979',\n", " '0',\n", " '17.7',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@|\\x01\\x00\\x00\\x00\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@\\xfe')" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res.fetchone()" ] }, { "cell_type": "code", "execution_count": 36, "id": "66ebd5f2-c01d-4f0d-b15a-7892b3df02af", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('3139', '3139', '3139', 'POINT(6.050001 49.727499)', 6.050001, 49.727499)" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = cur.execute('SELECT a1_95,a2_95,a3_95,ST_AsText(geometry),ST_X(geometry),ST_Y(geometry) FROM eu_y_x_select_6algorithms_fullTable')\n", "res.fetchone()" ] }, { "cell_type": "code", "execution_count": 37, "id": "2a2c9dd4-9d24-4872-8f7f-d9149220c79a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[('1022', '2303', '970', 'POINT(6.050002 49.922155)', 6.0500017, 49.922155),\n", " ('380', '1336', '332', 'POINT(6.050002 48.602377)', 6.0500021, 48.602377),\n", " ('3153', '3142', '3142', 'POINT(6.050009 48.151979)', 6.0500089, 48.151979),\n", " ('666', '4221', '651', 'POINT(6.05001 49.58841)', 6.0500102, 49.58841),\n", " ('787', '1179', '1187', 'POINT(6.050014 48.608456)', 6.0500143, 48.608456),\n", " ('2952', '2933', '2937', 'POINT(6.050017 48.571401)', 6.0500165, 48.571401),\n", " ('3303', '3288', '3296', 'POINT(6.050019 49.921613)', 6.0500189, 49.921613),\n", " ('1637', '1614', '1618', 'POINT(6.05002 48.822645)', 6.0500201, 48.822645),\n", " ('1415', '1393', '1396', 'POINT(6.050024 49.847522)', 6.0500238, 49.847522),\n", " ('1194', '1183', '1186', 'POINT(6.050027 49.661237)', 6.0500266, 49.661237),\n", " ('2762', '2736', '2740', 'POINT(6.050039 47.995344)', 6.0500389, 47.995344),\n", " ('437', '3082', '1490', 'POINT(6.050041 49.573607)', 6.050041, 49.573607),\n", " ('2772', '2776', '2780', 'POINT(6.050043 48.144718)', 6.0500429, 48.144718),\n", " ('1398', '2505', '2509', 'POINT(6.050046 49.865317)', 6.0500458, 49.865317),\n", " ('984', '943', '947', 'POINT(6.050048 49.05002)', 6.0500477, 49.05002),\n", " ('3362', '3332', '3336', 'POINT(6.050049 48.391359)', 6.0500487, 48.391359),\n", " ('1602', '1591', '1594', 'POINT(6.050049 49.243593)', 6.0500492, 49.243593),\n", " ('533', '529', '529', 'POINT(6.050053 49.877876)', 6.0500529, 49.877876),\n", " ('2330', '2330', '2334', 'POINT(6.050053 49.457731)', 6.0500533, 49.457731),\n", " ('224', '168', '168', 'POINT(6.050054 49.450656)', 6.0500544, 49.450656),\n", " ('1103', '1081', '1089', 'POINT(6.050061 48.126619)', 6.0500607, 48.126619),\n", " ('1796', '1736', '1740', 'POINT(6.050063 48.014352)', 6.0500632, 48.014352),\n", " ('479', '1197', '943', 'POINT(6.050073 49.346603)', 6.0500727, 49.346603),\n", " ('1208', '1205', '1208', 'POINT(6.05007 49.871995)', 6.05007, 49.871995),\n", " ('408', '374', '378', 'POINT(6.050079 48.276936)', 6.0500789, 48.276936),\n", " ('3906', '3925', '3929', 'POINT(6.050083 49.281439)', 6.0500833, 49.281439),\n", " ('2393', '2371', '2374', 'POINT(6.050084 49.694701)', 6.0500838, 49.694701),\n", " ('378', '348', '351', 'POINT(6.050089 49.941493)', 6.0500886, 49.941493),\n", " ('2701', '2704', '2708', 'POINT(6.0501 49.286244)', 6.0501004, 49.286244),\n", " ('262', '250', '250', 'POINT(6.050104 48.977114)', 6.0501038, 48.977114),\n", " ('213', '172', '176', 'POINT(6.050104 49.23368)', 6.0501038, 49.23368),\n", " ('1941', '2008', '2020', 'POINT(6.050105 48.13987)', 6.0501048, 48.13987),\n", " ('343', '328', '328', 'POINT(6.050119 49.737194)', 6.0501193, 49.737194),\n", " ('1763', '1763', '1767', 'POINT(6.050119 49.92861)', 6.050119, 49.92861),\n", " ('172', '161', '161', 'POINT(6.05012 49.22903)', 6.0501204, 49.22903),\n", " ('3603', '3603', '3606', 'POINT(6.050122 49.72948)', 6.0501219, 49.72948),\n", " ('351', '343', '343', 'POINT(6.050123 49.860762)', 6.0501225, 49.860762),\n", " ('1507', '1544', '1548', 'POINT(6.050124 48.266277)', 6.050124, 48.266277),\n", " ('2923', '2905', '2905', 'POINT(6.05012 48.058094)', 6.05012, 48.058094),\n", " ('262', '1217', '1217', 'POINT(6.050127 48.660395)', 6.0501265, 48.660395),\n", " ('377', '1513', '1136', 'POINT(6.050128 49.721407)', 6.0501281, 49.721407),\n", " ('449', '1067', '419', 'POINT(6.05013 48.678628)', 6.0501302, 48.678628),\n", " ('1366', '1363', '1366', 'POINT(6.050132 49.765778)', 6.0501317, 49.765778),\n", " ('3273', '2460', '3311', 'POINT(6.050133 49.043002)', 6.0501325, 49.043002),\n", " ('2884', '2873', '2873', 'POINT(6.050139 49.574314)', 6.0501387, 49.574314),\n", " ('355', '1730', '336', 'POINT(6.050143 49.641136)', 6.0501434, 49.641136),\n", " ('2683', '2687', '2687', 'POINT(6.050146 49.724384)', 6.0501464, 49.724384),\n", " ('2982', '2964', '2975', 'POINT(6.050147 48.143707)', 6.0501468, 48.143707),\n", " ('2057', '2398', '2409', 'POINT(6.050147 48.739394)', 6.0501468, 48.739394),\n", " ('414', '440', '444', 'POINT(6.05015 49.946353)', 6.0501504, 49.946353),\n", " ('385', '378', '378', 'POINT(6.050151 49.771607)', 6.0501509, 49.771607),\n", " ('1811', '1785', '1789', 'POINT(6.050155 48.030541)', 6.0501546, 48.030541),\n", " ('179', '134', '142', 'POINT(6.05016 48.77701)', 6.0501601, 48.77701),\n", " ('347', '313', '321', 'POINT(6.050163 49.940555)', 6.0501626, 49.940555),\n", " ('359', '1011', '1015', 'POINT(6.050164 49.832442)', 6.0501643, 49.832442),\n", " ('3266', '3232', '3232', 'POINT(6.050167 49.815488)', 6.0501674, 49.815488),\n", " ('2564', '2564', '2568', 'POINT(6.050168 49.748087)', 6.0501675, 49.748087),\n", " ('291', '770', '774', 'POINT(6.050175 48.049679)', 6.0501746, 48.049679),\n", " ('2760', '2749', '2753', 'POINT(6.050188 49.821238)', 6.0501877, 49.821238),\n", " ('2963', '2967', '2970', 'POINT(6.050194 49.803259)', 6.0501936, 49.803259),\n", " ('1397', '5889', '1416', 'POINT(6.050195 48.514206)', 6.0501953, 48.514206),\n", " ('1838', '1865', '1876', 'POINT(6.050196 49.538832)', 6.0501957, 49.538832),\n", " ('1258', '1273', '1273', 'POINT(6.050196 49.074041)', 6.0501958, 49.074041),\n", " ('1006', '980', '991', 'POINT(6.050201 49.834817)', 6.0502009, 49.834817),\n", " ('1853', '1812', '1812', 'POINT(6.050206 48.762202)', 6.0502058, 48.762202),\n", " ('1924', '1924', '1924', 'POINT(6.050208 49.767374)', 6.0502075, 49.767374),\n", " ('2486', '2475', '2475', 'POINT(6.050214 49.293145)', 6.0502142, 49.293145),\n", " ('632', '1089', '1093', 'POINT(6.050215 49.947326)', 6.0502154, 49.947326),\n", " ('1830', '1826', '1830', 'POINT(6.050226 47.989116)', 6.0502255, 47.989116),\n", " ('744', '718', '722', 'POINT(6.050234 48.091576)', 6.050234, 48.091576),\n", " ('2693', '2648', '2648', 'POINT(6.050236 48.156663)', 6.0502359, 48.156663),\n", " ('1408', '1869', '1872', 'POINT(6.050236 49.83438)', 6.0502364, 49.83438),\n", " ('321', '284', '287', 'POINT(6.050247 48.756247)', 6.0502466, 48.756247),\n", " ('876', '891', '910', 'POINT(6.05025 49.790673)', 6.0502498, 49.790673),\n", " ('228', '191', '194', 'POINT(6.050253 49.235474)', 6.0502527, 49.235474),\n", " ('1444', '1422', '1426', 'POINT(6.050253 49.017677)', 6.0502531, 49.017677),\n", " ('2659', '2648', '2648', 'POINT(6.050255 48.245403)', 6.0502546, 48.245403),\n", " ('2146', '2153', '2153', 'POINT(6.050256 48.136725)', 6.0502559, 48.136725),\n", " ('501', '939', '943', 'POINT(6.050257 49.457015)', 6.0502569, 49.457015),\n", " ('2976', '2953', '2957', 'POINT(6.050263 48.269253)', 6.0502628, 48.269253),\n", " ('2752', '2789', '2793', 'POINT(6.050266 49.586915)', 6.0502663, 49.586915),\n", " ('471', '479', '482', 'POINT(6.050268 49.43227)', 6.0502682, 49.43227),\n", " ('784', '1012', '765', 'POINT(6.05027 49.745969)', 6.0502702, 49.745969),\n", " ('474', '1935', '463', 'POINT(6.050271 49.07236)', 6.050271, 49.07236),\n", " ('3141', '3118', '3118', 'POINT(6.050274 49.6346)', 6.0502743, 49.6346),\n", " ('2453', '2460', '2468', 'POINT(6.050275 49.739494)', 6.0502749, 49.739494),\n", " ('1681', '1666', '1674', 'POINT(6.050278 48.155905)', 6.050278, 48.155905),\n", " ('495', '1609', '1620', 'POINT(6.050284 48.6599)', 6.0502838, 48.6599),\n", " ('355', '3344', '355', 'POINT(6.050284 48.151159)', 6.050284, 48.151159),\n", " ('582', '1142', '1146', 'POINT(6.050286 48.613629)', 6.0502856, 48.613629),\n", " ('194', '161', '164', 'POINT(6.050291 49.554001)', 6.0502911, 49.554001),\n", " ('1621', '3385', '1613', 'POINT(6.050295 49.848342)', 6.0502949, 49.848342),\n", " ('2689', '2682', '2682', 'POINT(6.050304 49.568564)', 6.0503044, 49.568564),\n", " ('1819', '1834', '1842', 'POINT(6.050306 48.265646)', 6.0503059, 48.265646),\n", " ('2516', '2792', '2501', 'POINT(6.050308 49.638514)', 6.0503082, 49.638514),\n", " ('1760', '1764', '1768', 'POINT(6.050313 49.474377)', 6.0503131, 49.474377),\n", " ('265', '973', '239', 'POINT(6.05032 48.657586)', 6.0503196, 48.657586),\n", " ('2184', '2195', '2202', 'POINT(6.050321 49.359121)', 6.0503211, 49.359121),\n", " ('984', '1650', '1197', 'POINT(6.050324 48.008733)', 6.0503242, 48.008733),\n", " ('1400', '1382', '1400', 'POINT(6.050326 48.66191)', 6.0503259, 48.66191),\n", " ('2188', '2196', '2199', 'POINT(6.050327 48.158439)', 6.0503269, 48.158439),\n", " ('448', '437', '437', 'POINT(6.050327 49.708249)', 6.050327, 49.708249),\n", " ('637', '693', '704', 'POINT(6.050329 48.602245)', 6.0503285, 48.602245),\n", " ('227', '198', '201', 'POINT(6.050329 49.23037)', 6.0503291, 49.23037),\n", " ('2613', '2602', '2602', 'POINT(6.050335 49.287225)', 6.0503345, 49.287225),\n", " ('467', '1098', '1106', 'POINT(6.050335 49.55192)', 6.0503351, 49.55192),\n", " ('901', '2030', '934', 'POINT(6.050336 49.568882)', 6.0503355, 49.568882),\n", " ('1209', '1179', '1187', 'POINT(6.050348 48.997161)', 6.0503479, 48.997161),\n", " ('2816', '2801', '2805', 'POINT(6.050352 49.796402)', 6.0503515, 49.796402),\n", " ('277', '247', '247', 'POINT(6.050353 48.644042)', 6.0503526, 48.644042),\n", " ('3329', '3284', '3284', 'POINT(6.050354 49.280153)', 6.0503535, 49.280153),\n", " ('1406', '1402', '1402', 'POINT(6.05035 49.871558)', 6.05035, 49.871558),\n", " ('1520', '1520', '1524', 'POINT(6.050356 49.473944)', 6.0503555, 49.473944),\n", " ('791', '1651', '791', 'POINT(6.05036 48.13253)', 6.0503604, 48.13253),\n", " ('1972', '1961', '1965', 'POINT(6.050361 48.113711)', 6.0503606, 48.113711),\n", " ('653', '668', '672', 'POINT(6.050362 49.738684)', 6.0503621, 49.738684),\n", " ('1246', '2646', '1208', 'POINT(6.050367 48.020758)', 6.0503674, 48.020758),\n", " ('575', '1011', '1038', 'POINT(6.050369 49.727861)', 6.0503687, 49.727861),\n", " ('1347', '1321', '1325', 'POINT(6.050369 49.349842)', 6.0503694, 49.349842),\n", " ('2815', '2822', '2826', 'POINT(6.050372 48.024239)', 6.0503718, 48.024239),\n", " ('2006', '1998', '2002', 'POINT(6.050375 48.775438)', 6.0503753, 48.775438),\n", " ('1375', '1416', '1423', 'POINT(6.050375 49.654063)', 6.050375, 49.654063),\n", " ('917', '1479', '1490', 'POINT(6.05038 49.244936)', 6.0503797, 49.244936),\n", " ('1231', '1202', '1209', 'POINT(6.050381 49.063186)', 6.0503805, 49.063186),\n", " ('489', '780', '791', 'POINT(6.050384 49.884913)', 6.0503838, 49.884913),\n", " ('1307', '2532', '1150', 'POINT(6.05039 49.903842)', 6.0503903, 49.903842),\n", " ('415', '2454', '841', 'POINT(6.050392 48.146307)', 6.050392, 48.146307),\n", " ('2634', '2656', '2660', 'POINT(6.050394 48.037447)', 6.0503938, 48.037447),\n", " ('2390', '2352', '2352', 'POINT(6.050394 48.816719)', 6.0503944, 48.816719),\n", " ('2637', '2629', '2633', 'POINT(6.050397 49.468548)', 6.0503972, 49.468548),\n", " ('243', '202', '202', 'POINT(6.050398 48.096616)', 6.0503976, 48.096616),\n", " ('1445', '2033', '2033', 'POINT(6.050398 49.015717)', 6.0503976, 49.015717),\n", " ('650', '1842', '1850', 'POINT(6.050403 49.560612)', 6.0504034, 49.560612),\n", " ('217', '179', '179', 'POINT(6.050404 48.064458)', 6.0504043, 48.064458),\n", " ('2048', '2041', '2041', 'POINT(6.050405 49.76727)', 6.0504051, 49.76727),\n", " ('2264', '2268', '2268', 'POINT(6.050406 49.651123)', 6.0504055, 49.651123),\n", " ('1297', '1308', '1312', 'POINT(6.050406 49.804685)', 6.0504064, 49.804685),\n", " ('887', '925', '928', 'POINT(6.050409 49.323616)', 6.0504093, 49.323616),\n", " ('1703', '1703', '1703', 'POINT(6.050411 49.230699)', 6.0504109, 49.230699),\n", " ('2408', '2393', '2397', 'POINT(6.050412 49.287399)', 6.0504115, 49.287399),\n", " ('1394', '2883', '1503', 'POINT(6.050412 49.865704)', 6.0504122, 49.865704),\n", " ('1945', '1930', '1934', 'POINT(6.050417 48.110302)', 6.0504165, 48.110302),\n", " ('2350', '2328', '2332', 'POINT(6.050418 48.247739)', 6.0504177, 48.247739),\n", " ('2272', '2258', '2258', 'POINT(6.050418 49.464828)', 6.0504177, 49.464828),\n", " ('2449', '2430', '2434', 'POINT(6.050423 49.752892)', 6.0504232, 49.752892),\n", " ('2679', '2657', '2660', 'POINT(6.050426 48.05615)', 6.0504263, 48.05615),\n", " ('2588', '3678', '2595', 'POINT(6.050431 49.701037)', 6.050431, 49.701037),\n", " ('1505', '1475', '1479', 'POINT(6.050432 49.934463)', 6.0504316, 49.934463),\n", " ('3251', '3229', '3229', 'POINT(6.050434 48.149558)', 6.0504339, 48.149558),\n", " ('1936', '1932', '1936', 'POINT(6.050434 49.229568)', 6.0504343, 49.229568),\n", " ('302', '1366', '1366', 'POINT(6.050436 48.589054)', 6.0504357, 48.589054),\n", " ('2264', '2238', '2242', 'POINT(6.050439 49.742842)', 6.0504388, 49.742842),\n", " ('318', '310', '314', 'POINT(6.05044 49.543152)', 6.0504396, 49.543152),\n", " ('2532', '2532', '2535', 'POINT(6.050442 49.740129)', 6.0504416, 49.740129),\n", " ('1239', '1243', '1247', 'POINT(6.050443 49.330718)', 6.0504431, 49.330718),\n", " ('2352', '2337', '2341', 'POINT(6.050444 49.745857)', 6.0504442, 49.745857),\n", " ('1893', '1923', '1927', 'POINT(6.050449 49.097484)', 6.0504487, 49.097484),\n", " ('718', '707', '711', 'POINT(6.050451 49.449742)', 6.0504506, 49.449742),\n", " ('2966', '2963', '2966', 'POINT(6.050452 49.724607)', 6.0504518, 49.724607),\n", " ('201', '168', '168', 'POINT(6.050453 49.230591)', 6.0504532, 49.230591),\n", " ('748', '1407', '977', 'POINT(6.050455 48.113831)', 6.0504551, 48.113831),\n", " ('3364', '3356', '3360', 'POINT(6.050459 48.150059)', 6.0504592, 48.150059),\n", " ('2198', '2194', '2198', 'POINT(6.050465 49.288935)', 6.050465, 49.288935),\n", " ('1072', '1154', '1158', 'POINT(6.050467 49.663969)', 6.0504665, 49.663969),\n", " ('350', '331', '331', 'POINT(6.050468 49.73942)', 6.0504675, 49.73942),\n", " ('2112', '2120', '2124', 'POINT(6.05047 48.814112)', 6.05047, 48.814112),\n", " ('2996', '2974', '2978', 'POINT(6.050475 49.731163)', 6.0504753, 49.731163),\n", " ('370', '1021', '407', 'POINT(6.050476 49.661026)', 6.0504759, 49.661026),\n", " ('3513', '3506', '3524', 'POINT(6.050482 49.879106)', 6.0504824, 49.879106),\n", " ('2543', '3015', '3019', 'POINT(6.050488 49.432164)', 6.0504882, 49.432164),\n", " ('413', '387', '391', 'POINT(6.050495 49.852568)', 6.0504949, 49.852568),\n", " ('2050', '2046', '2054', 'POINT(6.050496 48.685926)', 6.0504957, 48.685926),\n", " ('436', '399', '407', 'POINT(6.050498 49.94672)', 6.0504982, 49.94672),\n", " ('426', '1111', '1118', 'POINT(6.050501 48.098055)', 6.0505013, 48.098055),\n", " ('2531', '3173', '2539', 'POINT(6.050508 49.835373)', 6.0505077, 49.835373),\n", " ('258', '232', '235', 'POINT(6.05051 49.22779)', 6.0505098, 49.22779),\n", " ('1232', '4557', '1198', 'POINT(6.050511 48.641439)', 6.0505112, 48.641439),\n", " ('1814', '2494', '2501', 'POINT(6.050512 49.742057)', 6.0505117, 49.742057),\n", " ('198', '149', '149', 'POINT(6.050516 48.071224)', 6.0505163, 48.071224),\n", " ('2953', '3558', '3566', 'POINT(6.05052 49.723497)', 6.0505197, 49.723497),\n", " ('2532', '2524', '2524', 'POINT(6.050527 49.809097)', 6.0505268, 49.809097),\n", " ('520', '1962', '1966', 'POINT(6.050527 48.638358)', 6.0505273, 48.638358),\n", " ('943', '1104', '1108', 'POINT(6.050529 49.037252)', 6.0505289, 49.037252),\n", " ('370', '396', '396', 'POINT(6.05053 49.704356)', 6.0505295, 49.704356),\n", " ('644', '644', '647', 'POINT(6.050533 49.443821)', 6.0505328, 49.443821),\n", " ('2442', '2464', '2468', 'POINT(6.050545 49.371889)', 6.0505445, 49.371889),\n", " ('4599', '4554', '4562', 'POINT(6.050552 49.728155)', 6.0505518, 49.728155),\n", " ('834', '838', '845', 'POINT(6.050557 48.084503)', 6.0505566, 48.084503),\n", " ('2175', '4765', '2190', 'POINT(6.050557 48.513279)', 6.0505567, 48.513279),\n", " ('2232', '2229', '2247', 'POINT(6.050561 49.816044)', 6.0505611, 49.816044),\n", " ('1987', '404', '1991', 'POINT(6.050576 49.322446)', 6.0505758, 49.322446),\n", " ('1923', '1908', '1912', 'POINT(6.050577 49.76693)', 6.0505772, 49.76693),\n", " ('606', '595', '602', 'POINT(6.050578 49.267928)', 6.0505776, 49.267928),\n", " ('4306', '4283', '4298', 'POINT(6.050579 48.24596)', 6.0505788, 48.24596),\n", " ('2467', '2456', '2459', 'POINT(6.050581 48.568742)', 6.0505807, 48.568742),\n", " ('4737', '5208', '5250', 'POINT(6.050581 48.252107)', 6.0505811, 48.252107),\n", " ('3046', '3038', '3042', 'POINT(6.050582 48.133117)', 6.0505817, 48.133117),\n", " ('217', '224', '232', 'POINT(6.050595 49.559782)', 6.0505945, 49.559782),\n", " ('1734', '2811', '1794', 'POINT(6.050597 49.56296)', 6.0505968, 49.56296),\n", " ('2175', '2156', '2160', 'POINT(6.050602 48.017664)', 6.0506023, 48.017664),\n", " ('988', '2986', '842', 'POINT(6.050605 48.057634)', 6.0506054, 48.057634),\n", " ('3009', '2983', '2983', 'POINT(6.050609 48.078618)', 6.0506092, 48.078618),\n", " ('1299', '1262', '1265', 'POINT(6.050619 49.05607)', 6.0506187, 49.05607),\n", " ('2555', '2551', '2555', 'POINT(6.050629 49.742247)', 6.0506289, 49.742247),\n", " ('359', '348', '348', 'POINT(6.050631 49.42633)', 6.0506309, 49.42633),\n", " ('2610', '2924', '2924', 'POINT(6.050632 48.564232)', 6.0506321, 48.564232),\n", " ('2907', '2884', '2888', 'POINT(6.050634 49.463705)', 6.050634, 49.463705),\n", " ('3529', '3495', '3495', 'POINT(6.050642 49.644647)', 6.0506421, 49.644647),\n", " ('2097', '2093', '2097', 'POINT(6.050645 49.731665)', 6.0506447, 49.731665),\n", " ('3970', '3985', '3992', 'POINT(6.050645 49.916016)', 6.0506447, 49.916016),\n", " ('306', '492', '496', 'POINT(6.050645 49.745735)', 6.0506448, 49.745735),\n", " ('2564', '2568', '2576', 'POINT(6.050645 49.468028)', 6.0506451, 49.468028),\n", " ('2473', '2473', '2473', 'POINT(6.050654 48.04395)', 6.0506544, 48.04395),\n", " ('2582', '2567', '2579', 'POINT(6.050655 49.725767)', 6.0506549, 49.725767),\n", " ('2508', '2504', '2508', 'POINT(6.050662 49.262929)', 6.0506618, 49.262929),\n", " ('2755', '2740', '2740', 'POINT(6.050666 48.120077)', 6.0506664, 48.120077),\n", " ('1042', '1024', '1027', 'POINT(6.050668 48.125864)', 6.0506684, 48.125864),\n", " ('411', '374', '374', 'POINT(6.050669 49.430866)', 6.0506693, 49.430866),\n", " ('1917', '1924', '1932', 'POINT(6.050671 49.69843)', 6.0506706, 49.69843),\n", " ('2705', '2705', '2705', 'POINT(6.050673 49.740436)', 6.0506727, 49.740436),\n", " ('1487', '1509', '1517', 'POINT(6.050676 49.5548)', 6.0506763, 49.5548),\n", " ('1868', '4872', '1902', 'POINT(6.050677 48.64731)', 6.0506765, 48.64731),\n", " ('1999', '2011', '2011', 'POINT(6.050677 49.227925)', 6.0506767, 49.227925),\n", " ('2594', '2605', '2613', 'POINT(6.050679 49.463065)', 6.0506794, 49.463065),\n", " ('302', '1073', '291', 'POINT(6.05068 48.464655)', 6.0506795, 48.464655),\n", " ('2070', '2066', '2077', 'POINT(6.050681 49.431922)', 6.0506805, 49.431922),\n", " ('2378', '2389', '2389', 'POINT(6.050687 49.628641)', 6.0506874, 49.628641),\n", " ('1242', '1197', '1197', 'POINT(6.050692 48.002562)', 6.0506915, 48.002562),\n", " ('2983', '2990', '2990', 'POINT(6.050696 49.647402)', 6.050696, 49.647402),\n", " ('359', '333', '337', 'POINT(6.050698 49.444967)', 6.0506976, 49.444967),\n", " ('2606', '2602', '2602', 'POINT(6.050701 49.459032)', 6.0507008, 49.459032),\n", " ('2746', '2746', '2753', 'POINT(6.050703 49.660287)', 6.0507026, 49.660287),\n", " ('2476', '3034', '3038', 'POINT(6.050703 49.372211)', 6.0507027, 49.372211),\n", " ('1876', '1865', '1873', 'POINT(6.050704 49.701684)', 6.0507038, 49.701684),\n", " ('739', '2488', '728', 'POINT(6.050704 49.066623)', 6.0507042, 49.066623),\n", " ('1530', '2963', '1533', 'POINT(6.050705 48.152197)', 6.0507051, 48.152197),\n", " ('321', '306', '310', 'POINT(6.050706 49.940682)', 6.0507057, 49.940682),\n", " ('1505', '1801', '1805', 'POINT(6.050708 48.651939)', 6.0507083, 48.651939),\n", " ('1359', '2648', '1378', 'POINT(6.050709 49.345502)', 6.0507092, 49.345502),\n", " ('433', '421', '425', 'POINT(6.050711 48.602562)', 6.0507112, 48.602562),\n", " ('2497', '2475', '2486', 'POINT(6.050712 49.274347)', 6.0507121, 49.274347),\n", " ('378', '355', '359', 'POINT(6.050712 49.06919)', 6.0507124, 49.06919),\n", " ('228', '194', '194', 'POINT(6.050714 49.847824)', 6.0507141, 49.847824),\n", " ('2629', '2607', '2614', 'POINT(6.050716 49.5874)', 6.0507158, 49.5874),\n", " ('3142', '3116', '3120', 'POINT(6.050716 49.702348)', 6.0507164, 49.702348),\n", " ('2737', '2734', '2749', 'POINT(6.050728 49.549586)', 6.0507282, 49.549586),\n", " ('2407', '2380', '2384', 'POINT(6.050732 47.995561)', 6.0507317, 47.995561),\n", " ('1168', '1179', '1183', 'POINT(6.050733 48.608645)', 6.0507333, 48.608645),\n", " ('3168', '3134', '3134', 'POINT(6.050735 48.571591)', 6.0507352, 48.571591),\n", " ('3038', '3064', '3067', 'POINT(6.050737 48.144937)', 6.0507365, 48.144937),\n", " ('673', '3354', '2176', 'POINT(6.050737 49.705881)', 6.0507371, 49.705881),\n", " ('625', '1119', '1123', 'POINT(6.050738 49.032513)', 6.0507382, 49.032513),\n", " ('3494', '3468', '3479', 'POINT(6.050743 49.727685)', 6.0507432, 49.727685),\n", " ('2200', '2188', '2188', 'POINT(6.050745 49.721128)', 6.0507451, 49.721128),\n", " ('2393', '2385', '2389', 'POINT(6.050746 49.79862)', 6.0507459, 49.79862),\n", " ('1753', '1723', '1726', 'POINT(6.050747 48.822828)', 6.0507473, 48.822828),\n", " ('1932', '1928', '1928', 'POINT(6.050748 49.021706)', 6.0507475, 49.021706),\n", " ('2531', '2793', '2801', 'POINT(6.050754 48.995569)', 6.0507539, 48.995569),\n", " ('419', '1456', '1134', 'POINT(6.050755 48.014565)', 6.0507546, 48.014565),\n", " ('804', '827', '834', 'POINT(6.050755 48.126835)', 6.0507552, 48.126835),\n", " ('586', '2152', '803', 'POINT(6.050756 49.557999)', 6.0507555, 49.557999),\n", " ('430', '2190', '453', 'POINT(6.050761 49.861421)', 6.0507609, 49.861421),\n", " ('1527', '2348', '2355', 'POINT(6.050764 48.391553)', 6.0507642, 48.391553),\n", " ('2209', '2202', '2205', 'POINT(6.050766 49.782379)', 6.0507657, 49.782379),\n", " ('606', '8334', '614', 'POINT(6.05077 49.588571)', 6.0507695, 49.588571),\n", " ('194', '157', '164', 'POINT(6.050776 49.567724)', 6.0507764, 49.567724),\n", " ('250', '205', '205', 'POINT(6.050776 49.236674)', 6.050776, 49.236674),\n", " ('1347', '1325', '1329', 'POINT(6.050778 49.661394)', 6.0507781, 49.661394),\n", " ('853', '1752', '1756', 'POINT(6.05078 49.050196)', 6.0507796, 49.050196),\n", " ('820', '786', '812', 'POINT(6.050785 49.921762)', 6.0507852, 49.921762),\n", " ('1508', '1501', '1501', 'POINT(6.050788 49.243763)', 6.0507877, 49.243763),\n", " ('273', '262', '265', 'POINT(6.050788 48.277132)', 6.0507882, 48.277132),\n", " ('2630', '2607', '2611', 'POINT(6.050796 49.573769)', 6.0507963, 49.573769),\n", " ('2502', '2495', '2498', 'POINT(6.050797 49.457895)', 6.0507974, 49.457895),\n", " ('194', '141', '141', 'POINT(6.0508 49.567829)', 6.0507997, 49.567829),\n", " ('1243', '1225', '1255', 'POINT(6.050804 49.450821)', 6.0508041, 49.450821),\n", " ('2860', '2837', '2841', 'POINT(6.050812 48.058309)', 6.0508118, 48.058309),\n", " ('370', '1291', '580', 'POINT(6.050815 49.346772)', 6.0508153, 49.346772),\n", " ('2174', '2182', '2182', 'POINT(6.050817 49.878027)', 6.0508172, 49.878027),\n", " ('648', '1247', '1247', 'POINT(6.050821 48.630749)', 6.0508213, 48.630749),\n", " ('3281', '3277', '3281', 'POINT(6.050827 49.281607)', 6.0508271, 49.281607),\n", " ('1470', '1541', '1544', 'POINT(6.050829 48.266481)', 6.0508293, 48.266481),\n", " ('1993', '2341', '2345', 'POINT(6.050833 48.977293)', 6.0508334, 48.977293),\n", " ('2524', '2509', '2513', 'POINT(6.050837 49.694856)', 6.0508371, 49.694856),\n", " ('172', '153', '157', 'POINT(6.05084 49.286413)', 6.0508402, 49.286413),\n", " ('284', '273', '277', 'POINT(6.050841 49.233851)', 6.050841, 49.233851),\n", " ('2930', '2904', '2908', 'POINT(6.050844 48.143925)', 6.0508438, 48.143925),\n", " ('543', '513', '520', 'POINT(6.050845 48.660583)', 6.0508445, 48.660583),\n", " ('1890', '1894', '1897', 'POINT(6.050845 48.030761)', 6.0508453, 48.030761),\n", " ('2368', '2371', '2379', 'POINT(6.0508 48.140088)', 6.0508, 48.140088),\n", " ('1404', '1400', '1404', 'POINT(6.050851 48.678816)', 6.0508507, 48.678816),\n", " ('164', '149', '157', 'POINT(6.050858 49.229201)', 6.0508577, 49.229201),\n", " ('1158', '1139', '1147', 'POINT(6.05086 49.737366)', 6.0508596, 49.737366),\n", " ('3191', '3169', '3173', 'POINT(6.050862 49.729637)', 6.0508624, 49.729637),\n", " ('1593', '2031', '2039', 'POINT(6.050864 48.739578)', 6.0508643, 48.739578),\n", " ('1267', '1252', '1252', 'POINT(6.050868 49.86548)', 6.0508678, 49.86548),\n", " ('3741', '3715', '3719', 'POINT(6.050871 49.7216)', 6.0508708, 49.7216),\n", " ('1378', '1385', '1385', 'POINT(6.050873 49.928757)', 6.0508734, 49.928757),\n", " ('287', '257', '261', 'POINT(6.05088 49.641305)', 6.0508796, 49.641305),\n", " ('1524', '1520', '1528', 'POINT(6.050882 49.324965)', 6.050882, 49.324965),\n", " ('1814', '1802', '1806', 'POINT(6.050884 48.777194)', 6.0508839, 48.777194),\n", " ('2982', '2960', '2960', 'POINT(6.050887 49.72456)', 6.0508871, 49.72456),\n", " ('277', '254', '254', 'POINT(6.050889 49.765933)', 6.0508885, 49.765933),\n", " ('2382', '2389', '2393', 'POINT(6.050889 49.574472)', 6.0508894, 49.574472),\n", " ('2482', '2908', '2916', 'POINT(6.050898 49.860916)', 6.0508975, 49.860916),\n", " ('516', '516', '516', 'POINT(6.050909 49.771761)', 6.0509087, 49.771761),\n", " ('239', '194', '194', 'POINT(6.050909 48.065838)', 6.0509092, 48.065838),\n", " ('3026', '3023', '3026', 'POINT(6.050912 49.665948)', 6.0509118, 49.665948),\n", " ('868', '883', '890', 'POINT(6.050917 48.126862)', 6.0509165, 48.126862),\n", " ('298', '1094', '235', 'POINT(6.050918 49.946501)', 6.0509175, 49.946501),\n", " ('2652', '2644', '2648', 'POINT(6.050921 49.832596)', 6.0509208, 49.832596),\n", " ('381', '340', '340', 'POINT(6.050922 48.091791)', 6.0509215, 48.091791),\n", " ('313', '1898', '1898', 'POINT(6.050924 48.762385)', 6.0509242, 48.762385),\n", " ('1883', '1894', '1898', 'POINT(6.050929 49.074218)', 6.0509289, 49.074218),\n", " ('2331', '2308', '2312', 'POINT(6.050931 48.15688)', 6.0509314, 48.15688),\n", " ('2880', '2876', '2876', 'POINT(6.050931 49.815635)', 6.050931, 49.815635),\n", " ('310', '1490', '790', 'POINT(6.050939 49.538989)', 6.0509387, 49.538989),\n", " ('313', '1367', '309', 'POINT(6.050943 48.247823)', 6.0509431, 48.247823),\n", " ('264', '241', '245', 'POINT(6.050947 48.700699)', 6.050947, 48.700699),\n", " ('298', '2114', '447', 'POINT(6.050951 49.767557)', 6.0509509, 49.767557),\n", " ('1228', '1213', '1213', 'POINT(6.050953 49.803413)', 6.0509527, 49.803413),\n", " ('2067', '2044', '2048', 'POINT(6.050955 49.293314)', 6.050955, 49.293314),\n", " ('351', '298', '313', 'POINT(6.050964 48.151367)', 6.0509635, 48.151367),\n", " ('3022', '3022', '3026', 'POINT(6.050964 49.834969)', 6.0509642, 49.834969),\n", " ('1081', '1089', '1092', 'POINT(6.050968 49.33099)', 6.0509676, 49.33099),\n", " ('284', '261', '261', 'POINT(6.050968 48.756431)', 6.0509678, 48.756431),\n", " ('1631', '1609', '1616', 'POINT(6.050968 48.591282)', 6.0509679, 48.591282),\n", " ('544', '544', '548', 'POINT(6.050972 49.892098)', 6.0509719, 49.892098),\n", " ('284', '1857', '1345', 'POINT(6.050972 48.156127)', 6.0509722, 48.156127),\n", " ('295', '303', '307', 'POINT(6.050973 49.543196)', 6.0509733, 49.543196),\n", " ('1733', '1681', '1685', 'POINT(6.050976 49.947474)', 6.050976, 49.947474),\n", " ('2576', '2553', '2557', 'POINT(6.050978 49.274002)', 6.0509784, 49.274002),\n", " ('1755', '1747', '1759', 'POINT(6.050984 49.017856)', 6.050984, 49.017856),\n", " ('217', '191', '191', 'POINT(6.050988 49.235643)', 6.0509881, 49.235643),\n", " ('280', '1116', '258', 'POINT(6.050992 49.834522)', 6.0509917, 49.834522),\n", " ('2134', '2130', '2134', 'POINT(6.050997 49.457178)', 6.0509967, 49.457178),\n", " ('265', '235', '239', 'POINT(6.050998 49.234005)', 6.0509981, 49.234005),\n", " ('1337', '1277', '1281', 'POINT(6.051002 48.613817)', 6.0510015, 48.613817),\n", " ('2056', '2042', '2686', 'POINT(6.051002 48.660113)', 6.0510021, 48.660113),\n", " ('415', '430', '434', 'POINT(6.051011 49.432435)', 6.0510108, 49.432435),\n", " ('605', '571', '575', 'POINT(6.051013 49.746144)', 6.0510125, 49.746144),\n", " ('242', '2737', '1355', 'POINT(6.051013 49.587074)', 6.0510127, 49.587074),\n", " ('3133', '3115', '3118', 'POINT(6.051014 49.634775)', 6.0510136, 49.634775),\n", " ('1879', '1864', '1868', 'POINT(6.051014 48.265844)', 6.051014, 48.265844),\n", " ('1512', '1515', '1515', 'POINT(6.051017 48.008947)', 6.0510172, 48.008947),\n", " ('821', '814', '814', 'POINT(6.051017 49.739666)', 6.0510172, 49.739666),\n", " ('516', '1099', '1103', 'POINT(6.05102 48.158651)', 6.0510201, 48.158651),\n", " ('298', '272', '276', 'POINT(6.051032 49.745383)', 6.0510315, 49.745383),\n", " ('2017', '2025', '2029', 'POINT(6.051039 49.927944)', 6.0510392, 49.927944),\n", " ('378', '359', '363', 'POINT(6.05104 48.988392)', 6.0510401, 48.988392),\n", " ('277', '299', '303', 'POINT(6.051041 49.554162)', 6.0510407, 49.554162),\n", " ('164', '138', '142', 'POINT(6.051044 48.096856)', 6.0510443, 48.096856),\n", " ('359', '2078', '531', 'POINT(6.051045 49.84849)', 6.0510449, 49.84849),\n", " ('3035', '3035', '3035', 'POINT(6.051046 49.638687)', 6.0510461, 49.638687),\n", " ('570', '622', '626', 'POINT(6.051049 48.602432)', 6.0510493, 48.602432),\n", " ('288', '284', '284', 'POINT(6.051052 48.657756)', 6.0510515, 48.657756),\n", " ('926', '1292', '1300', 'POINT(6.051053 48.132748)', 6.0510528, 48.132748),\n", " ('2223', '2212', '2216', 'POINT(6.051055 48.113926)', 6.0510548, 48.113926),\n", " ('269', '1475', '1887', 'POINT(6.051056 47.976346)', 6.0510561, 47.976346),\n", " ('790', '1236', '1243', 'POINT(6.051057 48.662082)', 6.0510569, 48.662082),\n", " ('2938', '2941', '2945', 'POINT(6.051059 48.020974)', 6.0510592, 48.020974),\n", " ('2863', '2867', '2867', 'POINT(6.051062 48.024458)', 6.0510623, 48.024458),\n", " ('2034', '2015', '2019', 'POINT(6.051063 49.474542)', 6.0510629, 49.474542),\n", " ('1569', '1561', '1565', 'POINT(6.051064 49.230541)', 6.0510635, 49.230541),\n", " ('668', '706', '710', 'POINT(6.05107 49.708424)', 6.0510698, 49.708424),\n", " ('2164', '2156', '2160', 'POINT(6.051074 49.287394)', 6.0510737, 49.287394),\n", " ('261', '2058', '254', 'POINT(6.051078 48.775616)', 6.0510782, 48.775616),\n", " ('2332', '3190', '2389', 'POINT(6.051079 48.997339)', 6.0510786, 48.997339),\n", " ('1020', '1727', '2483', 'POINT(6.05108 48.67011)', 6.0510802, 48.67011),\n", " ('875', '1837', '1107', 'POINT(6.051081 48.037663)', 6.0510814, 48.037663),\n", " ('367', '352', '355', 'POINT(6.051085 48.644215)', 6.0510854, 48.644215),\n", " ('1745', '1711', '1711', 'POINT(6.051087 49.552085)', 6.0510871, 49.552085),\n", " ('2790', '2778', '2790', 'POINT(6.051088 49.280323)', 6.0510878, 49.280323),\n", " ('2914', '2921', '2925', 'POINT(6.051088 48.146525)', 6.051088, 48.146525),\n", " ('1938', '1931', '1931', 'POINT(6.05109 48.096832)', 6.0510902, 48.096832),\n", " ('1396', '1385', '1392', 'POINT(6.051095 49.474107)', 6.0510945, 49.474107),\n", " ('2744', '2721', '2721', 'POINT(6.051097 48.064674)', 6.0510965, 48.064674),\n", " ('396', '717', '721', 'POINT(6.051103 49.738862)', 6.0511027, 49.738862),\n", " ('1171', '1844', '1447', 'POINT(6.051108 48.110522)', 6.0511079, 48.110522),\n", " ('2929', '2921', '2925', 'POINT(6.051109 49.796556)', 6.0511091, 49.796556),\n", " ('411', '1849', '392', 'POINT(6.051114 49.65424)', 6.0511137, 49.65424),\n", " ('2417', '2402', '2406', 'POINT(6.051116 48.05637)', 6.0511161, 48.05637),\n", " ('1074', '1295', '1303', 'POINT(6.051116 49.350012)', 6.051116, 49.350012),\n", " ('3439', '3495', '3506', 'POINT(6.051117 49.728071)', 6.0511169, 49.728071),\n", " ('292', '494', '494', 'POINT(6.051118 49.063364)', 6.0511179, 49.063364),\n", " ('887', '1562', '1303', 'POINT(6.051121 49.245108)', 6.0511207, 49.245108),\n", " ('2442', '2442', '2442', 'POINT(6.051121 48.816901)', 6.0511208, 48.816901),\n", " ('2451', '2433', '2437', 'POINT(6.051127 48.247937)', 6.0511273, 48.247937),\n", " ('1663', '1655', '1663', 'POINT(6.05113 49.015893)', 6.0511304, 49.015893),\n", " ('358', '3008', '336', 'POINT(6.051131 48.149782)', 6.0511311, 48.149782),\n", " ('2014', '2033', '2036', 'POINT(6.051146 49.651303)', 6.0511464, 49.651303),\n", " ('194', '146', '146', 'POINT(6.051148 49.23087)', 6.0511479, 49.23087),\n", " ('2285', '2277', '2281', 'POINT(6.051149 49.468714)', 6.0511493, 49.468714),\n", " ('290', '846', '846', 'POINT(6.05115 49.804856)', 6.0511495, 49.804856),\n", " ('2328', '2294', '2294', 'POINT(6.051151 49.767443)', 6.0511506, 49.767443),\n", " ('2255', '2247', '2251', 'POINT(6.051152 49.287568)', 6.0511517, 49.287568),\n", " ('1471', '2456', '2460', 'POINT(6.051153 48.989847)', 6.0511533, 48.989847),\n", " ('2937', '2933', '2937', 'POINT(6.05115 49.560772)', 6.05115, 49.560772),\n", " ('2038', '2061', '2076', 'POINT(6.051156 49.885065)', 6.0511556, 49.885065),\n", " ('373', '3177', '1442', 'POINT(6.051156 48.150276)', 6.051156, 48.150276),\n", " ('1397', '4274', '1401', 'POINT(6.051157 49.903992)', 6.0511573, 49.903992),\n", " ('847', '2035', '2039', 'POINT(6.051161 48.589244)', 6.0511611, 48.589244),\n", " ('2201', '2194', '2198', 'POINT(6.051164 49.464991)', 6.0511641, 49.464991),\n", " ('1959', '1962', '1966', 'POINT(6.05117 49.229737)', 6.0511695, 49.229737),\n", " ('2531', '2827', '2838', 'POINT(6.051172 49.865855)', 6.0511717, 49.865855),\n", " ('2666', '2651', '2651', 'POINT(6.05118 49.753046)', 6.0511795, 49.753046),\n", " ('1893', '1935', '1935', 'POINT(6.051182 49.097659)', 6.0511816, 49.097659),\n", " ('232', '202', '202', 'POINT(6.051182 48.450187)', 6.0511822, 48.450187),\n", " ('3790', '3749', '3749', 'POINT(6.051183 49.701192)', 6.0511834, 49.701192),\n", " ('726', '722', '726', 'POINT(6.051186 49.330886)', 6.0511862, 49.330886),\n", " ('299', '277', '280', 'POINT(6.051186 49.543314)', 6.0511862, 49.543314),\n", " ('190', '175', '179', 'POINT(6.051188 49.230762)', 6.0511879, 49.230762),\n", " ('1189', '1171', '1171', 'POINT(6.051191 48.098276)', 6.0511913, 48.098276),\n", " ('718', '707', '711', 'POINT(6.051196 49.449907)', 6.0511958, 49.449907),\n", " ('2850', '2835', '2835', 'POINT(6.051196 49.740282)', 6.0511963, 49.740282),\n", " ('359', '1989', '1131', 'POINT(6.051197 48.814298)', 6.0511971, 48.814298),\n", " ('2006', '2201', '2205', 'POINT(6.051199 48.072218)', 6.0511991, 48.072218),\n", " ('2277', '2262', '2262', 'POINT(6.0512 49.746011)', 6.0511996, 49.746011),\n", " ('1860', '1853', '1856', 'POINT(6.0512 48.686129)', 6.0512002, 48.686129),\n", " ('2719', '2711', '2715', 'POINT(6.051204 49.289104)', 6.0512038, 49.289104),\n", " ('2551', '2539', '2551', 'POINT(6.051205 49.724762)', 6.0512052, 49.724762),\n", " ('414', '384', '392', 'POINT(6.051206 49.664144)', 6.0512056, 49.664144),\n", " ('301', '1229', '1229', 'POINT(6.051206 48.654472)', 6.0512064, 48.654472),\n", " ('202', '157', '157', 'POINT(6.051207 48.071439)', 6.0512073, 48.071439),\n", " ('2025', '2032', '2032', 'POINT(6.05121 49.426166)', 6.0512098, 49.426166),\n", " ('235', '198', '201', 'POINT(6.051214 49.731329)', 6.0512135, 49.731329),\n", " ('705', '719', '723', 'POINT(6.051224 49.739566)', 6.0512238, 49.739566),\n", " ('2622', '2584', '2592', 'POINT(6.051237 49.432328)', 6.0512366, 49.432328),\n", " ('273', '235', '239', 'POINT(6.051246 49.227961)', 6.0512462, 49.227961),\n", " ('1456', '2988', '1441', 'POINT(6.051247 48.641631)', 6.0512467, 48.641631),\n", " ('190', '153', '160', 'POINT(6.051247 49.742228)', 6.0512467, 49.742228),\n", " ('522', '567', '571', 'POINT(6.05125 49.94689)', 6.0512501, 49.94689),\n", " ('292', '1535', '1539', 'POINT(6.051259 48.63853)', 6.0512587, 48.63853),\n", " ('2908', '2893', '2896', 'POINT(6.05126 49.723665)', 6.0512597, 49.723665),\n", " ('1576', '1576', '1584', 'POINT(6.051266 49.03743)', 6.0512661, 49.03743),\n", " ('1209', '3065', '1206', 'POINT(6.051271 49.879261)', 6.0512707, 49.879261),\n", " ('2586', '4937', '2575', 'POINT(6.051273 48.51347)', 6.0512734, 48.51347),\n", " ('2675', '2671', '2671', 'POINT(6.051276 48.133333)', 6.0512761, 48.133333),\n", " ('2127', '2123', '2138', 'POINT(6.051277 49.443985)', 6.0512768, 49.443985),\n", " ('346', '324', '328', 'POINT(6.051282 49.835528)', 6.0512817, 49.835528),\n", " ('2285', '2273', '2277', 'POINT(6.051282 49.80925)', 6.0512823, 49.80925),\n", " ('2899', '3326', '2910', 'POINT(6.051287 49.372055)', 6.0512871, 49.372055),\n", " ('2208', '2186', '2186', 'POINT(6.051292 48.017882)', 6.0512915, 48.017882),\n", " ('2222', '2472', '2472', 'POINT(6.051292 49.8596)', 6.0512918, 49.8596),\n", " ('2553', '2545', '2545', 'POINT(6.051299 48.568932)', 6.0512994, 48.568932),\n", " ('2880', '3524', '3558', 'POINT(6.051311 49.728311)', 6.051311, 49.728311),\n", " ('415', '367', '370', 'POINT(6.051317 49.816199)', 6.0513167, 49.816199),\n", " ('2081', '2096', '2100', 'POINT(6.051318 49.322616)', 6.0513178, 49.322616),\n", " ('676', '1221', '698', 'POINT(6.051318 48.13922)', 6.0513184, 48.13922),\n", " ('1010', '1007', '1025', 'POINT(6.051318 49.268099)', 6.0513184, 49.268099),\n", " ('2154', '2117', '2121', 'POINT(6.051319 49.767108)', 6.0513185, 49.767108),\n", " ('441', '1177', '874', 'POINT(6.051319 49.563113)', 6.0513191, 49.563113),\n", " ('1021', '2136', '1055', 'POINT(6.051343 48.044166)', 6.0513425, 48.044166),\n", " ('228', '243', '250', 'POINT(6.051344 49.559943)', 6.0513438, 49.559943),\n", " ('2160', '2145', '2145', 'POINT(6.051351 47.982681)', 6.0513512, 47.982681),\n", " ('2864', '2827', '2830', 'POINT(6.051355 48.564419)', 6.0513548, 48.564419),\n", " ('1016', '1012', '1016', 'POINT(6.05136 48.126082)', 6.0513601, 48.126082),\n", " ('2481', '3009', '3009', 'POINT(6.05136 48.120294)', 6.0513603, 48.120294),\n", " ('242', '216', '220', 'POINT(6.051371 49.742415)', 6.0513709, 49.742415),\n", " ('621', '625', '632', 'POINT(6.051373 49.426494)', 6.051373, 49.426494),\n", " ('460', '2588', '1378', 'POINT(6.051376 49.463868)', 6.0513761, 49.463868),\n", " ('2987', '2987', '2990', 'POINT(6.051381 49.644827)', 6.0513807, 49.644827),\n", " ('347', '2521', '325', 'POINT(6.051384 48.464864)', 6.0513842, 48.464864),\n", " ('251', '221', '224', 'POINT(6.051385 48.809768)', 6.0513845, 48.809768),\n", " ('269', '1519', '1519', 'POINT(6.051387 48.002774)', 6.0513872, 48.002774),\n", " ('246', '212', '212', 'POINT(6.051388 49.74591)', 6.0513877, 49.74591),\n", " ('2755', '2740', '2744', 'POINT(6.051389 49.468194)', 6.0513891, 49.468194),\n", " ('1795', '1802', '1810', 'POINT(6.05139 49.731813)', 6.0513904, 49.731813),\n", " ('520', '2029', '531', 'POINT(6.051392 48.647497)', 6.051392, 48.647497),\n", " ('2149', '2160', '2167', 'POINT(6.051401 49.263099)', 6.0514005, 49.263099),\n", " ('579', '1938', '606', 'POINT(6.051402 48.152416)', 6.0514016, 48.152416),\n", " ('2317', '2288', '2291', 'POINT(6.05141 49.725921)', 6.0514097, 49.725921),\n", " ('2404', '3060', '2790', 'POINT(6.051412 49.916165)', 6.0514124, 49.916165),\n", " ('2712', '2708', '2712', 'POINT(6.051413 49.740612)', 6.0514133, 49.740612),\n", " ('1722', '1666', '1719', 'POINT(6.051414 49.228096)', 6.0514137, 49.228096),\n", " ('2696', '2692', '2692', 'POINT(6.051415 49.431033)', 6.0514151, 49.431033),\n", " ('2066', '2055', '2062', 'POINT(6.051418 49.698586)', 6.0514179, 49.698586),\n", " ('2564', '2530', '2530', 'POINT(6.051423 47.995775)', 6.0514234, 47.995775),\n", " ('2894', '2882', '2890', 'POINT(6.051424 49.463229)', 6.0514242, 49.463229),\n", " ('1943', '1913', '1920', 'POINT(6.051425 48.145152)', 6.0514246, 48.145152),\n", " ('2818', '2822', '2826', 'POINT(6.051425 49.432088)', 6.0514253, 49.432088),\n", " ('2186', '2175', '2193', 'POINT(6.051426 49.55496)', 6.0514255, 49.55496),\n", " ('2221', '2213', '2217', 'POINT(6.051426 49.628816)', 6.0514263, 49.628816),\n", " ('3031', '3024', '3027', 'POINT(6.051435 49.647581)', 6.0514346, 49.647581),\n", " ('698', '1310', '1314', 'POINT(6.051436 48.602752)', 6.0514363, 48.602752),\n", " ('288', '239', '239', 'POINT(6.05144 48.65211)', 6.0514398, 48.65211),\n", " ('3303', '3310', '3314', 'POINT(6.051442 49.660464)', 6.0514415, 49.660464),\n", " ('1659', '1655', '1659', 'POINT(6.051443 49.445132)', 6.0514425, 49.445132),\n", " ('2516', '2538', '2542', 'POINT(6.051443 49.70186)', 6.0514433, 49.70186),\n", " ('2907', '2895', '2899', 'POINT(6.051443 49.822028)', 6.0514433, 49.822028),\n", " ('1801', '1978', '1981', 'POINT(6.051445 49.372379)', 6.0514452, 49.372379),\n", " ('2359', '2378', '2385', 'POINT(6.051445 49.274517)', 6.051445, 49.274517),\n", " ('847', '847', '854', 'POINT(6.051446 48.608831)', 6.0514461, 48.608831),\n", " ('542', '542', '542', 'POINT(6.051447 49.069367)', 6.0514467, 49.069367),\n", " ('291', '1938', '336', 'POINT(6.051448 48.014781)', 6.0514475, 48.014781),\n", " ('228', '194', '194', 'POINT(6.051448 49.537378)', 6.051448, 49.537378),\n", " ('905', '920', '924', 'POINT(6.051449 48.127051)', 6.0514493, 48.127051),\n", " ('2448', '2441', '2448', 'POINT(6.05145 49.459196)', 6.0514497, 49.459196),\n", " ('2642', '2624', '2624', 'POINT(6.051452 48.571779)', 6.0514524, 48.571779),\n", " ('999', '1048', '1055', 'POINT(6.051456 49.905347)', 6.0514561, 49.905347),\n", " ('2242', '2242', '2246', 'POINT(6.051459 49.702519)', 6.0514586, 49.702519),\n", " ('3052', '2535', '3045', 'POINT(6.051466 49.58756)', 6.051466, 49.58756),\n", " ('254', '1445', '696', 'POINT(6.05147 49.549744)', 6.0514699, 49.549744),\n", " ('1794', '1782', '1786', 'POINT(6.05147 49.032689)', 6.0514701, 49.032689),\n", " ('702', '706', '713', 'POINT(6.051477 49.721023)', 6.0514774, 49.721023),\n", " ('2617', '3204', '3216', 'POINT(6.051481 49.706069)', 6.0514805, 49.706069),\n", " ('292', '573', '322', 'POINT(6.051482 48.467281)', 6.0514821, 48.467281),\n", " ('434', '453', '456', 'POINT(6.051484 49.23902)', 6.0514842, 49.23902),\n", " ('3106', '3091', '3094', 'POINT(6.051486 49.727872)', 6.0514856, 49.727872),\n", " ('2936', '2932', '2932', 'POINT(6.051488 49.721307)', 6.0514876, 49.721307),\n", " ('2464', '2778', '2778', 'POINT(6.051491 48.995748)', 6.0514906, 48.995748),\n", " ('1541', '1511', '1530', 'POINT(6.051492 48.140301)', 6.0514918, 48.140301),\n", " ('504', '493', '500', 'POINT(6.051494 49.558158)', 6.0514939, 49.558158),\n", " ('1056', '2131', '1037', 'POINT(6.051502 49.588729)', 6.0515023, 49.588729),\n", " ('2867', '2845', '2845', 'POINT(6.051504 48.058525)', 6.0515037, 48.058525),\n", " ('224', '190', '190', 'POINT(6.051507 49.736334)', 6.0515071, 49.736334),\n", " ('385', '381', '381', 'POINT(6.051514 49.236845)', 6.0515141, 49.236845),\n", " ('1763', '1771', '1782', 'POINT(6.051524 49.567885)', 6.0515236, 49.567885),\n", " ('857', '1490', '865', 'POINT(6.051527 49.922454)', 6.0515265, 49.922454),\n", " ('1677', '1654', '1654', 'POINT(6.051528 49.243933)', 6.0515275, 49.243933),\n", " ('569', '3189', '557', 'POINT(6.051529 49.861572)', 6.0515287, 49.861572),\n", " ('3152', '3133', '3133', 'POINT(6.051529 49.661551)', 6.0515294, 49.661551),\n", " ('1030', '1018', '1026', 'POINT(6.05153 49.916198)', 6.0515301, 49.916198),\n", " ('1115', '1384', '1388', 'POINT(6.051535 48.266686)', 6.0515351, 48.266686),\n", " ('2423', '2435', '2438', 'POINT(6.051541 49.458059)', 6.0515411, 49.458059),\n", " ('291', '227', '231', 'POINT(6.051545 49.567989)', 6.0515451, 49.567989),\n", " ('711', '715', '715', 'POINT(6.05155 48.630923)', 6.0515503, 48.630923),\n", " ('1156', '4404', '1167', 'POINT(6.051551 48.050957)', 6.0515505, 48.050957),\n", " ('1903', '2236', '2244', 'POINT(6.051554 49.450987)', 6.0515539, 49.450987),\n", " ('445', '1370', '617', 'POINT(6.05156 49.346941)', 6.05156, 49.346941),\n", " ('3498', '3577', '3580', 'POINT(6.051567 49.281776)', 6.0515669, 49.281776),\n", " ('2077', '2066', '2066', 'POINT(6.051574 49.878176)', 6.0515743, 49.878176),\n", " ('254', '966', '970', 'POINT(6.051575 48.679004)', 6.0515747, 48.679004),\n", " ('299', '269', '273', 'POINT(6.051579 49.234022)', 6.0515786, 49.234022),\n", " ('2304', '2510', '2323', 'POINT(6.051589 48.739763)', 6.0515892, 48.739763),\n", " ('1071', '1067', '1071', 'POINT(6.05159 49.695011)', 6.0515904, 49.695011),\n", " ('157', '123', '131', 'POINT(6.051595 49.229372)', 6.0515954, 49.229372),\n", " ('217', '179', '179', 'POINT(6.0516 48.066057)', 6.0515996, 48.066057),\n", " ('1259', '1244', '1247', 'POINT(6.051601 49.737541)', 6.0516007, 49.737541),\n", " ('1248', '1233', '1237', 'POINT(6.051603 49.729799)', 6.0516032, 49.729799),\n", " ('318', '299', '310', 'POINT(6.051608 48.127078)', 6.0516083, 48.127078),\n", " ('209', '164', '164', 'POINT(6.051609 47.989549)', 6.0516089, 47.989549),\n", " ('456', '1222', '1229', 'POINT(6.051611 49.72177)', 6.0516109, 49.72177),\n", " ('329', '332', '332', 'POINT(6.05162 49.543806)', 6.0516204, 49.543806),\n", " ('1580', '1550', '1558', 'POINT(6.051623 49.325133)', 6.0516226, 49.325133),\n", " ('2856', '2882', '2886', 'POINT(6.051623 49.641507)', 6.0516226, 49.641507),\n", " ('1670', '1707', '1711', 'POINT(6.051626 48.991532)', 6.0516256, 48.991532),\n", " ('1961', '1950', '1950', 'POINT(6.051627 48.157097)', 6.0516274, 48.157097),\n", " ('983', '979', '983', 'POINT(6.051628 49.724734)', 6.0516277, 49.724734),\n", " ('1756', '1741', '1744', 'POINT(6.051629 49.86563)', 6.0516285, 49.86563),\n", " ('617', '614', '614', 'POINT(6.051632 49.928905)', 6.0516317, 49.928905),\n", " ('1214', '1207', '1214', 'POINT(6.051637 48.762567)', 6.051637, 48.762567),\n", " ('2452', '2452', '2456', 'POINT(6.051646 49.766087)', 6.0516456, 49.766087),\n", " ('444', '2268', '795', 'POINT(6.05165 49.666121)', 6.0516504, 49.666121),\n", " ('249', '208', '212', 'POINT(6.051654 48.700903)', 6.051654, 48.700903),\n", " ('369', '1210', '960', 'POINT(6.051662 48.151591)', 6.0516617, 48.151591),\n", " ('2168', '2261', '2265', 'POINT(6.051663 49.074395)', 6.0516629, 49.074395),\n", " ('2571', '2571', '2574', 'POINT(6.051671 48.156352)', 6.051671, 48.156352),\n", " ('526', '560', '568', 'POINT(6.051672 49.946647)', 6.0516721, 49.946647),\n", " ('1639', '3126', '1763', 'POINT(6.051675 48.303465)', 6.0516751, 48.303465),\n", " ('2348', '3143', '3146', 'POINT(6.051678 49.832749)', 6.0516776, 49.832749),\n", " ('216', '544', '551', 'POINT(6.051679 49.76772)', 6.0516791, 49.76772),\n", " ('1553', '1586', '1586', 'POINT(6.051687 48.59147)', 6.0516866, 48.59147),\n", " ('543', '505', '513', 'POINT(6.051691 49.815782)', 6.0516908, 49.815782),\n", " ('288', '1003', '277', 'POINT(6.05169 49.53915)', 6.05169, 49.53915),\n", " ('1595', '1583', '1587', 'POINT(6.051696 49.293483)', 6.0516959, 49.293483),\n", " ('1774', '1759', '1759', 'POINT(6.051702 48.077937)', 6.0517022, 48.077937),\n", " ('288', '1792', '1347', 'POINT(6.051709 48.009159)', 6.0517093, 48.009159),\n", " ('736', '672', '676', 'POINT(6.05171 49.915382)', 6.0517102, 49.915382),\n", " ('1618', '2378', '2390', 'POINT(6.05171 49.803566)', 6.0517104, 49.803566),\n", " ('2299', '2647', '2650', 'POINT(6.051711 49.274171)', 6.0517108, 49.274171),\n", " ('503', '1907', '1457', 'POINT(6.051713 48.66032)', 6.051713, 48.66032),\n", " ('1718', '1684', '1691', 'POINT(6.051716 49.018034)', 6.0517155, 49.018034),\n", " ('2764', '2757', '2757', 'POINT(6.051718 49.821535)', 6.0517175, 49.821535),\n", " ('273', '250', '254', 'POINT(6.051719 49.543357)', 6.051719, 49.543357),\n", " ('2783', '2801', '2809', 'POINT(6.05172 49.83512)', 6.0517199, 49.83512),\n", " ('209', '1697', '179', 'POINT(6.051723 49.235812)', 6.0517226, 49.235812),\n", " ('1636', '1550', '1557', 'POINT(6.051723 48.266042)', 6.051723, 48.266042),\n", " ('261', '1579', '1583', 'POINT(6.051727 48.614007)', 6.0517265, 48.614007),\n", " ('1289', '2693', '874', 'POINT(6.051735 49.0727)', 6.0517345, 49.0727),\n", " ('318', '303', '303', 'POINT(6.051736 49.234175)', 6.0517358, 49.234175),\n", " ('1980', '1977', '1980', 'POINT(6.051736 49.947621)', 6.0517364, 49.947621),\n", " ('183', '153', '157', 'POINT(6.051739 48.097072)', 6.0517391, 48.097072),\n", " ('2208', '2190', '2197', 'POINT(6.051741 49.457342)', 6.0517412, 49.457342),\n", " ('429', '1161', '978', 'POINT(6.051743 48.132965)', 6.0517426, 48.132965),\n", " ('649', '1395', '626', 'POINT(6.051743 49.892249)', 6.0517431, 49.892249),\n", " ('2021', '2010', '2010', 'POINT(6.051749 48.114142)', 6.0517494, 48.114142),\n", " ('2141', '2152', '2156', 'POINT(6.05175 47.976567)', 6.0517501, 47.976567),\n", " ('2541', '2560', '2563', 'POINT(6.051751 48.02119)', 6.0517507, 48.02119),\n", " ('2732', '2721', '2725', 'POINT(6.051752 48.024677)', 6.0517524, 48.024677),\n", " ('2032', '2021', '2032', 'POINT(6.051753 49.432599)', 6.0517533, 49.432599),\n", " ('3373', '3376', '3380', 'POINT(6.051753 49.634952)', 6.051753, 49.634952),\n", " ('732', '945', '952', 'POINT(6.051755 49.746325)', 6.0517552, 49.746325),\n", " ('1929', '3423', '2753', 'POINT(6.051755 49.834667)', 6.0517552, 49.834667),\n", " ('2475', '2852', '2490', 'POINT(6.051764 49.587234)', 6.0517644, 49.587234),\n", " ('499', '458', '465', 'POINT(6.051767 48.602618)', 6.0517673, 48.602618),\n", " ('1348', '1326', '1337', 'POINT(6.051771 48.988571)', 6.051771, 48.988571),\n", " ('2758', '2750', '2754', 'POINT(6.051773 48.037884)', 6.0517727, 48.037884),\n", " ('276', '250', '250', 'POINT(6.051774 49.709248)', 6.0517738, 49.709248),\n", " ('220', '190', '190', 'POINT(6.051783 48.097049)', 6.0517829, 48.097049),\n", " ('2161', '2134', '2138', 'POINT(6.051784 49.63886)', 6.051784, 49.63886),\n", " ('2491', '2476', '2480', 'POINT(6.051785 48.146745)', 6.0517845, 48.146745),\n", " ('277', '262', '265', 'POINT(6.051785 48.657928)', 6.0517852, 48.657928),\n", " ('461', '1411', '1415', 'POINT(6.051787 48.670315)', 6.0517867, 48.670315),\n", " ('406', '391', '391', 'POINT(6.051788 49.745531)', 6.0517875, 49.745531),\n", " ('2650', '2646', '2650', 'POINT(6.051789 48.06489)', 6.0517886, 48.06489),\n", " ('1707', '1704', '1704', 'POINT(6.051789 49.928105)', 6.0517891, 49.928105),\n", " ('445', '442', '445', 'POINT(6.051791 49.708823)', 6.0517907, 49.708823),\n", " ('2174', '2193', '2193', 'POINT(6.051799 49.230711)', 6.051799, 49.230711),\n", " ('1070', '1093', '1108', 'POINT(6.051801 48.997513)', 6.0518005, 48.997513),\n", " ('2623', '2608', '2615', 'POINT(6.051806 48.056589)', 6.051806, 48.056589),\n", " ('2049', '2034', '2037', 'POINT(6.051812 49.474706)', 6.0518124, 49.474706),\n", " ('1520', '2585', '2593', 'POINT(6.051813 49.708606)', 6.0518126, 49.708606),\n", " ('2257', '2250', '2254', 'POINT(6.051813 49.287563)', 6.0518134, 49.287563),\n", " ('576', '576', '580', 'POINT(6.05181 48.085329)', 6.05181, 48.085329),\n", " ('2295', '2250', '2254', 'POINT(6.051822 49.280493)', 6.0518216, 49.280493),\n", " ('1950', '3041', '1946', 'POINT(6.051823 48.775807)', 6.0518225, 48.775807),\n", " ('1229', '2328', '1801', 'POINT(6.051826 48.150003)', 6.0518257, 48.150003),\n", " ('1427', '1480', '1480', 'POINT(6.051837 49.552248)', 6.0518374, 49.552248),\n", " ('2362', '2395', '2399', 'POINT(6.051838 48.248135)', 6.0518375, 48.248135),\n", " ('1587', '1576', '1580', 'POINT(6.051838 49.474272)', 6.0518381, 49.474272),\n", " ('1639', '1639', '1643', 'POINT(6.051841 48.114268)', 6.0518407, 48.114268),\n", " ('1079', '1072', '1075', 'POINT(6.051843 49.73904)', 6.0518432, 49.73904),\n", " ('812', '2007', '2015', 'POINT(6.051846 48.817084)', 6.0518455, 48.817084),\n", " ('982', '2313', '1554', 'POINT(6.051855 49.654424)', 6.0518547, 49.654424),\n", " ('429', '3244', '1910', 'POINT(6.051856 48.150497)', 6.0518561, 48.150497),\n", " ('865', '1595', '1598', 'POINT(6.051858 49.063544)', 6.0518581, 49.063544),\n", " ('541', '1232', '1239', 'POINT(6.051863 49.728267)', 6.0518628, 49.728267),\n", " ('1501', '1977', '1984', 'POINT(6.051864 49.350182)', 6.0518638, 49.350182),\n", " ('2816', '3592', '3363', 'POINT(6.051865 49.796709)', 6.0518654, 49.796709),\n", " ('3330', '3296', '3303', 'POINT(6.051867 49.245281)', 6.0518667, 49.245281),\n", " ('377', '2162', '2162', 'POINT(6.051886 48.589434)', 6.0518855, 48.589434),\n", " ('523', '1506', '1509', 'POINT(6.051887 49.651483)', 6.0518874, 49.651483),\n", " ('239', '213', '216', 'POINT(6.05189 49.537879)', 6.0518899, 49.537879),\n", " ('2762', '2755', '2755', 'POINT(6.05189 48.072437)', 6.0518904, 48.072437),\n", " ('2547', '2535', '2539', 'POINT(6.051892 49.287736)', 6.051892, 49.287736),\n", " ('2936', '2899', '2899', 'POINT(6.051897 49.767618)', 6.051897, 49.767618),\n", " ('2287', '2294', '2298', 'POINT(6.051898 48.071654)', 6.0518984, 48.071654),\n", " ('2020', '2508', '2031', 'POINT(6.051898 49.805034)', 6.051898, 49.805034),\n", " ('3041', '2989', '2996', 'POINT(6.0519 49.468879)', 6.0519004, 49.468879),\n", " ('1588', '1942', '1585', 'POINT(6.051905 48.686331)', 6.0519046, 48.686331),\n", " ('1861', '1888', '1895', 'POINT(6.051905 49.229906)', 6.0519048, 49.229906),\n", " ('2354', '3352', '2373', 'POINT(6.051908 49.560934)', 6.0519077, 49.560934),\n", " ('564', '725', '747', 'POINT(6.05191 49.230929)', 6.0519102, 49.230929),\n", " ('331', '1229', '1233', 'POINT(6.051912 48.654675)', 6.0519123, 48.654675),\n", " ('1961', '1979', '1979', 'POINT(6.051915 49.097834)', 6.0519146, 49.097834),\n", " ('321', '1563', '815', 'POINT(6.051915 49.866002)', 6.0519153, 49.866002),\n", " ('453', '2536', '846', 'POINT(6.05192 49.904141)', 6.0519196, 49.904141),\n", " ('1884', '2244', '2247', 'POINT(6.051922 48.814484)', 6.0519223, 48.814484),\n", " ('265', '235', '239', 'POINT(6.051933 49.543477)', 6.0519325, 49.543477),\n", " ('2292', '3255', '2386', 'POINT(6.051935 49.701348)', 6.0519352, 49.701348),\n", " ('2359', '2355', '2362', 'POINT(6.051941 49.450072)', 6.0519405, 49.450072),\n", " ('2311', '2307', '2307', 'POINT(6.051943 49.289273)', 6.0519427, 49.289273),\n", " ('844', '821', '821', 'POINT(6.051946 49.664323)', 6.0519456, 49.664323),\n", " ('2404', '2397', '2400', 'POINT(6.051951 49.740435)', 6.0519513, 49.740435),\n", " ('2069', '2081', '2081', 'POINT(6.051953 49.426332)', 6.0519534, 49.426332),\n", " ('474', '470', '470', 'POINT(6.051955 49.731504)', 6.0519545, 49.731504),\n", " ('277', '1936', '254', 'POINT(6.051955 49.746164)', 6.051955, 49.746164),\n", " ('3015', '2996', '2996', 'POINT(6.051959 49.724918)', 6.0519587, 49.724918),\n", " ('1389', '2969', '1636', 'POINT(6.051961 48.641817)', 6.0519609, 48.641817),\n", " ('227', '190', '190', 'POINT(6.051969 49.774334)', 6.051969, 49.774334),\n", " ('2855', '2829', '2829', 'POINT(6.05197 48.133548)', 6.0519704, 48.133548),\n", " ('2156', '2156', '2156', 'POINT(6.051981 48.018101)', 6.0519806, 48.018101),\n", " ('217', '179', '179', 'POINT(6.051983 49.228133)', 6.0519832, 49.228133),\n", " ('2914', '2910', '2914', 'POINT(6.051984 49.432492)', 6.0519844, 49.432492),\n", " ('1647', '2542', '1639', 'POINT(6.051991 49.537446)', 6.0519911, 49.537446),\n", " ('1434', '1457', '1460', 'POINT(6.051992 48.638702)', 6.051992, 48.638702),\n", " ('2896', '4911', '2843', 'POINT(6.051997 48.513662)', 6.051997, 48.513662),\n", " ('2840', '2833', '2833', 'POINT(6.052 49.723838)', 6.0519999, 49.723838),\n", " ('2300', '2933', '2937', 'POINT(6.052015 49.352983)', 6.0520154, 49.352983),\n", " ('2321', '2325', '2329', 'POINT(6.05202 48.569123)', 6.0520197, 48.569123),\n", " ('595', '580', '584', 'POINT(6.052021 49.444149)', 6.0520208, 49.444149),\n", " ('2595', '2945', '2949', 'POINT(6.052029 49.835675)', 6.0520289, 49.835675),\n", " ('1502', '1640', '1648', 'POINT(6.05203 49.372219)', 6.0520296, 49.372219),\n", " ('2327', '2338', '2342', 'POINT(6.052035 48.044389)', 6.0520348, 48.044389),\n", " ('1175', '1172', '1179', 'POINT(6.052036 49.704671)', 6.0520363, 49.704671),\n", " ('2674', '2671', '2671', 'POINT(6.052038 49.809403)', 6.0520375, 49.809403),\n", " ('3120', '3116', '3120', 'POINT(6.052041 49.858429)', 6.0520412, 49.858429),\n", " ('2617', '2632', '2632', 'POINT(6.052042 47.982898)', 6.0520418, 47.982898),\n", " ('1446', '1427', '1431', 'POINT(6.052052 48.126299)', 6.0520515, 48.126299),\n", " ('745', '2339', '1594', 'POINT(6.052052 49.322784)', 6.052052, 49.322784),\n", " ('2957', '2964', '2968', 'POINT(6.052054 48.120509)', 6.0520535, 48.120509),\n", " ('2229', '2214', '2218', 'POINT(6.052055 49.841664)', 6.0520553, 49.841664),\n", " ('1332', '3438', '1377', 'POINT(6.052058 49.879415)', 6.0520583, 49.879415),\n", " ('253', '1422', '941', 'POINT(6.052059 49.767275)', 6.0520593, 49.767275),\n", " ('336', '1349', '874', 'POINT(6.052065 49.563274)', 6.0520653, 49.563274),\n", " ('1854', '1820', '1827', 'POINT(6.052069 49.728467)', 6.0520689, 49.728467),\n", " ('3062', '3673', '3680', 'POINT(6.052069 49.268273)', 6.0520691, 49.268273),\n", " ('314', '310', '310', 'POINT(6.052073 49.816354)', 6.0520728, 49.816354),\n", " ('2737', '2726', '2730', 'POINT(6.052079 48.564608)', 6.0520788, 48.564608),\n", " ('359', '572', '576', 'POINT(6.05208 48.002982)', 6.0520799, 48.002982),\n", " ('261', '2311', '531', 'POINT(6.052089 48.465073)', 6.0520889, 48.465073),\n", " ('209', '183', '191', 'POINT(6.052093 49.560105)', 6.052093, 49.560105),\n", " ('366', '1732', '351', 'POINT(6.052098 48.152636)', 6.0520982, 48.152636),\n", " ('1985', '1963', '1963', 'POINT(6.052098 48.56182)', 6.0520982, 48.56182),\n", " ('1262', '1255', '1262', 'POINT(6.05211 48.809952)', 6.0521095, 48.809952),\n", " ('314', '269', '277', 'POINT(6.052112 48.668295)', 6.052112, 48.668295),\n", " ('1127', '4599', '1273', 'POINT(6.052113 48.647684)', 6.0521127, 48.647684),\n", " ('224', '186', '186', 'POINT(6.052113 49.74259)', 6.0521134, 49.74259),\n", " ('2380', '2362', '2362', 'POINT(6.052114 49.426659)', 6.0521144, 49.426659),\n", " ('2744', '2732', '2732', 'POINT(6.052115 47.99599)', 6.0521154, 47.99599),\n", " ('3030', '3019', '3019', 'POINT(6.052117 49.464032)', 6.0521174, 49.464032),\n", " ('2568', '3114', '3121', 'POINT(6.052119 49.645006)', 6.0521193, 49.645006),\n", " ('430', '423', '427', 'POINT(6.052131 48.668101)', 6.0521305, 48.668101),\n", " ('336', '332', '332', 'POINT(6.052131 49.746084)', 6.0521306, 49.746084),\n", " ('2808', '2965', '2969', 'POINT(6.052132 49.468359)', 6.0521324, 49.468359),\n", " ('299', '1111', '269', 'POINT(6.052138 48.014991)', 6.0521377, 48.014991),\n", " ('2676', '2665', '2669', 'POINT(6.05214 49.263269)', 6.0521401, 49.263269),\n", " ('552', '537', '541', 'POINT(6.052142 49.731969)', 6.0521424, 49.731969),\n", " ('898', '1388', '1392', 'POINT(6.052144 48.127269)', 6.0521444, 48.127269),\n", " ('2383', '2383', '2387', 'POINT(6.052154 49.740789)', 6.0521541, 49.740789),\n", " ('1664', '1691', '1694', 'POINT(6.052155 48.602941)', 6.0521545, 48.602941),\n", " ('2505', '2478', '2482', 'POINT(6.052156 49.53907)', 6.0521564, 49.53907),\n", " ('2794', '2801', '2801', 'POINT(6.052159 49.431199)', 6.0521589, 49.431199),\n", " ('3195', '3183', '3183', 'POINT(6.052164 49.726076)', 6.0521638, 49.726076),\n", " ('1748', '1797', '1800', 'POINT(6.052166 49.698741)', 6.0521664, 49.698741),\n", " ('3002', '2995', '2998', 'POINT(6.052169 49.463394)', 6.0521693, 49.463394),\n", " ('3017', '3002', '3005', 'POINT(6.05217 49.432254)', 6.0521698, 49.432254),\n", " ('269', '1146', '232', 'POINT(6.052173 48.652282)', 6.0521733, 48.652282),\n", " ('593', '1190', '1198', 'POINT(6.052173 48.609022)', 6.052173, 48.609022),\n", " ('3622', '3573', '3577', 'POINT(6.052174 49.647765)', 6.0521742, 49.647765),\n", " ('2485', '2488', '2496', 'POINT(6.052175 49.555121)', 6.0521746, 49.555121),\n", " ('2870', '3280', '2843', 'POINT(6.052177 48.571971)', 6.0521771, 48.571971),\n", " ('2052', '2014', '2026', 'POINT(6.052178 49.274686)', 6.0521778, 49.274686),\n", " ('3351', '3318', '3321', 'POINT(6.05218 49.660641)', 6.0521804, 49.660641),\n", " ('1201', '1235', '1235', 'POINT(6.052182 49.069543)', 6.0521816, 49.069543),\n", " ('1599', '1490', '1779', 'POINT(6.052182 49.916315)', 6.0521824, 49.916315),\n", " ('1779', '3148', '1798', 'POINT(6.052183 49.702033)', 6.0521829, 49.702033),\n", " ('2150', '2139', '2142', 'POINT(6.052187 49.372547)', 6.052187, 49.372547),\n", " ('1476', '1468', '1472', 'POINT(6.052189 49.445296)', 6.0521886, 49.445296),\n", " ('1431', '1506', '1521', 'POINT(6.052191 49.345836)', 6.0521912, 49.345836),\n", " ('2624', '2602', '2605', 'POINT(6.052194 49.53754)', 6.0521936, 49.53754),\n", " ('1885', '2424', '2424', 'POINT(6.05219 48.140524)', 6.05219, 48.140524),\n", " ('2740', '2740', '2740', 'POINT(6.052196 48.058741)', 6.0521958, 48.058741),\n", " ('2776', '2769', '2769', 'POINT(6.052201 49.702692)', 6.052201, 49.702692),\n", " ('3559', '3566', '3574', 'POINT(6.052205 49.822183)', 6.0522046, 49.822183),\n", " ('2924', '3377', '3381', 'POINT(6.052205 49.459361)', 6.0522048, 49.459361),\n", " ('1854', '1842', '1850', 'POINT(6.052214 49.022058)', 6.0522142, 49.022058),\n", " ('2786', '2768', '2771', 'POINT(6.052215 49.587721)', 6.0522154, 49.587721),\n", " ('563', '895', '574', 'POINT(6.052216 49.905496)', 6.0522164, 49.905496),\n", " ('422', '530', '553', 'POINT(6.052218 49.721203)', 6.0522183, 49.721203),\n", " ('265', '981', '779', 'POINT(6.052219 49.549904)', 6.0522193, 49.549904),\n", " ('254', '224', '228', 'POINT(6.052222 49.239192)', 6.0522217, 49.239192),\n", " ('1682', '1664', '1667', 'POINT(6.052222 49.706248)', 6.0522219, 49.706248),\n", " ('2025', '2066', '2066', 'POINT(6.052225 48.031199)', 6.0522252, 48.031199),\n", " ('3262', '3221', '3240', 'POINT(6.052228 49.728062)', 6.0522282, 49.728062),\n", " ('2085', '2112', '2119', 'POINT(6.052228 48.995927)', 6.052228, 48.995927),\n", " ('463', '2865', '1415', 'POINT(6.05223 49.721487)', 6.0522301, 49.721487),\n", " ('1025', '4625', '1081', 'POINT(6.052241 48.051171)', 6.0522412, 48.051171),\n", " ('1947', '1933', '1936', 'POINT(6.052243 48.266893)', 6.0522429, 48.266893),\n", " ('1863', '2215', '2230', 'POINT(6.052247 48.050341)', 6.0522467, 48.050341),\n", " ('2197', '2182', '2185', 'POINT(6.052249 49.736508)', 6.0522494, 49.736508),\n", " ('2011', '2029', '2037', 'POINT(6.052251 49.050552)', 6.0522512, 49.050552),\n", " ('1397', '1752', '1394', 'POINT(6.052252 49.558324)', 6.0522517, 49.558324),\n", " ('2224', '2183', '2183', 'POINT(6.052252 49.237015)', 6.0522519, 49.237015),\n", " ('516', '2228', '730', 'POINT(6.052253 49.588889)', 6.0522526, 49.588889),\n", " ('224', '183', '183', 'POINT(6.052258 49.008948)', 6.0522582, 49.008948),\n", " ('1767', '1752', '1759', 'POINT(6.052267 49.244104)', 6.0522669, 49.244104),\n", " ('396', '673', '385', 'POINT(6.052268 49.500721)', 6.0522683, 49.500721),\n", " ('659', '666', '670', 'POINT(6.05228 48.631098)', 6.0522797, 48.631098),\n", " ('3470', '3201', '3470', 'POINT(6.052281 49.661708)', 6.0522808, 49.661708),\n", " ('2528', '2513', '2517', 'POINT(6.052285 49.458223)', 6.0522846, 49.458223),\n", " ('202', '160', '160', 'POINT(6.05229 48.066277)', 6.0522902, 48.066277),\n", " ('2094', '2105', '2116', 'POINT(6.052293 48.977652)', 6.0522925, 48.977652),\n", " ('292', '235', '239', 'POINT(6.052293 48.660959)', 6.052293, 48.660959),\n", " ('374', '1089', '1093', 'POINT(6.052296 48.679192)', 6.0522955, 48.679192),\n", " ('595', '561', '565', 'POINT(6.052301 48.127295)', 6.0523008, 48.127295),\n", " ('1310', '2307', '2311', 'POINT(6.052301 49.922057)', 6.0523009, 49.922057),\n", " ('2032', '2006', '2014', 'POINT(6.052301 47.989767)', 6.0523011, 47.989767),\n", " ('2341', '2329', '2337', 'POINT(6.052302 49.281944)', 6.052302, 49.281944),\n", " ('2554', '2524', '2524', 'POINT(6.052304 49.451152)', 6.0523038, 49.451152),\n", " ('460', '1329', '1104', 'POINT(6.052308 49.34711)', 6.0523077, 49.34711),\n", " ('1924', '2372', '2372', 'POINT(6.052313 49.878323)', 6.052313, 49.878323),\n", " ('1625', '1636', '1640', 'POINT(6.052316 49.234193)', 6.0523161, 49.234193),\n", " ('2009', '2330', '2050', 'POINT(6.05232 48.739949)', 6.0523204, 48.739949),\n", " ('776', '772', '783', 'POINT(6.052332 49.916357)', 6.0523321, 49.916357),\n", " ('239', '198', '198', 'POINT(6.052344 49.729973)', 6.0523442, 49.729973),\n", " ('468', '595', '599', 'POINT(6.052348 48.641884)', 6.0523482, 48.641884),\n", " ('775', '748', '756', 'POINT(6.05235 48.991708)', 6.0523497, 48.991708),\n", " ('295', '762', '766', 'POINT(6.052351 48.151807)', 6.052351, 48.151807),\n", " ('3304', '3281', '3285', 'POINT(6.052354 49.721969)', 6.0523542, 49.721969),\n", " ('2841', '2848', '2856', 'POINT(6.052361 49.641689)', 6.0523613, 49.641689),\n", " ('1764', '1771', '1775', 'POINT(6.052362 48.762753)', 6.0523623, 48.762753),\n", " ('1486', '1513', '1520', 'POINT(6.052363 49.325302)', 6.0523631, 49.325302),\n", " ('280', '261', '261', 'POINT(6.052366 49.543968)', 6.0523657, 49.543968),\n", " ('2796', '2788', '2788', 'POINT(6.052368 49.724909)', 6.0523684, 49.724909),\n", " ('2048', '2814', '2814', 'POINT(6.052373 48.15658)', 6.0523731, 48.15658),\n", " ('538', '1173', '1181', 'POINT(6.052384 49.861211)', 6.0523835, 49.861211),\n", " ('220', '183', '183', 'POINT(6.052384 49.500252)', 6.0523839, 49.500252),\n", " ('2321', '2343', '2347', 'POINT(6.052385 48.248224)', 6.052385, 48.248224),\n", " ('2430', '2591', '2591', 'POINT(6.052386 49.865781)', 6.052386, 49.865781),\n", " ('1939', '4406', '1943', 'POINT(6.052388 48.303662)', 6.0523877, 48.303662),\n", " ('2070', '2414', '2425', 'POINT(6.05239 49.666298)', 6.0523897, 49.666298),\n", " ('1584', '1591', '1595', 'POINT(6.052395 49.074572)', 6.0523953, 49.074572),\n", " ('312', '264', '268', 'POINT(6.052398 48.676259)', 6.0523978, 48.676259),\n", " ('213', '186', '190', 'POINT(6.052402 49.009106)', 6.0524022, 49.009106),\n", " ('291', '2196', '243', 'POINT(6.052403 48.009375)', 6.0524027, 48.009375),\n", " ('2310', '2299', '2302', 'POINT(6.052403 49.766241)', 6.0524029, 49.766241),\n", " ('1147', '1162', '1162', 'POINT(6.052405 48.591657)', 6.0524048, 48.591657),\n", " ('429', '1274', '482', 'POINT(6.052412 48.756798)', 6.0524117, 48.756798),\n", " ('927', '1829', '1840', 'POINT(6.052413 48.660519)', 6.0524133, 48.660519),\n", " ('1452', '1437', '1441', 'POINT(6.052432 48.011951)', 6.0524316, 48.011951),\n", " ('161', '142', '142', 'POINT(6.052434 48.097289)', 6.0524337, 48.097289),\n", " ('292', '1195', '262', 'POINT(6.052435 49.832903)', 6.0524347, 49.832903),\n", " ('358', '2547', '369', 'POINT(6.052435 49.767918)', 6.052435, 49.767918),\n", " ('1714', '2336', '1714', 'POINT(6.052436 48.266242)', 6.0524358, 48.266242),\n", " ('2055', '2029', '2033', 'POINT(6.052437 49.293652)', 6.0524371, 49.293652),\n", " ('1550', '1516', '1516', 'POINT(6.05244 47.976779)', 6.0524399, 47.976779),\n", " ('287', '1322', '1325', 'POINT(6.052442 48.614194)', 6.0524418, 48.614194),\n", " ('2241', '2256', '2268', 'POINT(6.052443 48.021406)', 6.0524425, 48.021406),\n", " ('2156', '2201', '2205', 'POINT(6.052443 49.274339)', 6.0524426, 49.274339),\n", " ('2856', '2833', '2833', 'POINT(6.052443 48.024897)', 6.0524429, 48.024897),\n", " ('299', '2366', '277', 'POINT(6.052444 49.53931)', 6.0524437, 49.53931),\n", " ('1590', '1605', '1613', 'POINT(6.052444 48.114358)', 6.0524439, 48.114358),\n", " ('2723', '2693', '2704', 'POINT(6.052446 48.133191)', 6.0524464, 48.133191),\n", " ('2161', '2161', '2165', 'POINT(6.052455 49.23598)', 6.0524554, 49.23598),\n", " ('389', '1464', '393', 'POINT(6.052455 49.81593)', 6.052455, 49.81593),\n", " ('422', '2054', '972', 'POINT(6.052463 48.038103)', 6.0524625, 48.038103),\n", " ('280', '262', '262', 'POINT(6.052465 49.543518)', 6.0524651, 49.543518),\n", " ('3023', '3030', '3585', 'POINT(6.052469 49.80372)', 6.0524692, 49.80372),\n", " ('1801', '1805', '1812', 'POINT(6.052474 49.234346)', 6.0524737, 49.234346),\n", " ('778', '778', '778', 'POINT(6.052476 48.097265)', 6.0524757, 48.097265),\n", " ('3056', '3067', '3071', 'POINT(6.052477 49.835271)', 6.0524765, 49.835271),\n", " ('236', '228', '232', 'POINT(6.052479 49.280813)', 6.0524785, 49.280813),\n", " ('2635', '2628', '2628', 'POINT(6.052481 48.065105)', 6.0524807, 48.065105),\n", " ('722', '1067', '1070', 'POINT(6.052481 49.500406)', 6.0524813, 49.500406),\n", " ('3180', '3161', '3165', 'POINT(6.052482 49.821684)', 6.0524823, 49.821684),\n", " ('1715', '1704', '1707', 'POINT(6.052482 49.65774)', 6.052482, 49.65774),\n", " ('2632', '2646', '2650', 'POINT(6.052488 49.457508)', 6.0524878, 49.457508),\n", " ('504', '526', '541', 'POINT(6.052488 49.587388)', 6.0524884, 49.587388),\n", " ('2886', '2845', '2849', 'POINT(6.052492 49.635126)', 6.0524922, 49.635126),\n", " ('663', '1639', '1643', 'POINT(6.052493 48.602808)', 6.0524934, 48.602808),\n", " ('2432', '2425', '2425', 'POINT(6.052496 48.056808)', 6.0524956, 48.056808),\n", " ('2310', '2291', '2295', 'POINT(6.052496 49.947769)', 6.0524964, 49.947769),\n", " ('736', '713', '717', 'POINT(6.052498 49.746507)', 6.052498, 49.746507),\n", " ('640', '655', '658', 'POINT(6.052499 49.432765)', 6.0524985, 49.432765),\n", " ('895', '902', '906', 'POINT(6.052502 48.98875)', 6.0525019, 48.98875),\n", " ('198', '175', '179', 'POINT(6.052507 49.421704)', 6.0525071, 49.421704),\n", " ('3341', '3318', '3318', 'POINT(6.052513 49.83481)', 6.052513, 49.83481),\n", " ('548', '526', '541', 'POINT(6.052514 49.892401)', 6.0525141, 49.892401),\n", " ('411', '400', '400', 'POINT(6.052516 49.709427)', 6.0525161, 49.709427),\n", " ('280', '254', '258', 'POINT(6.052519 48.662427)', 6.0525194, 48.662427),\n", " ('1076', '2755', '2766', 'POINT(6.052523 49.639046)', 6.0525225, 49.639046),\n", " ('2617', '2231', '2647', 'POINT(6.052529 48.99769)', 6.052529, 48.99769),\n", " ('1603', '1573', '1573', 'POINT(6.052531 49.230881)', 6.0525308, 49.230881),\n", " ('1516', '1546', '1549', 'POINT(6.052533 48.114486)', 6.0525334, 48.114486),\n", " ('2560', '2537', '2541', 'POINT(6.052535 48.150236)', 6.0525351, 48.150236),\n", " ('2189', '2186', '2189', 'POINT(6.052539 49.928268)', 6.0525393, 49.928268),\n", " ('673', '688', '696', 'POINT(6.052541 49.035343)', 6.0525406, 49.035343),\n", " ('999', '984', '988', 'POINT(6.052543 49.745678)', 6.0525434, 49.745678),\n", " ('355', '333', '333', 'POINT(6.052545 49.708978)', 6.0525451, 49.708978),\n", " ('1953', '1961', '1961', 'POINT(6.052547 48.775991)', 6.0525467, 48.775991),\n", " ('2190', '2175', '2178', 'POINT(6.052548 48.248334)', 6.0525476, 48.248334),\n", " ('2138', '2111', '2126', 'POINT(6.052553 49.287733)', 6.052553, 49.287733),\n", " ('2679', '2694', '2705', 'POINT(6.052556 49.708785)', 6.0525555, 49.708785),\n", " ('534', '2833', '784', 'POINT(6.052556 48.150718)', 6.0525557, 48.150718),\n", " ('2104', '2093', '2101', 'POINT(6.052559 49.280663)', 6.0525592, 49.280663),\n", " ('1040', '2359', '1067', 'POINT(6.052561 49.848788)', 6.0525612, 49.848788),\n", " ('1918', '1933', '1936', 'POINT(6.052562 49.474871)', 6.0525618, 49.474871),\n", " ('1294', '1287', '1294', 'POINT(6.052572 48.098718)', 6.0525717, 48.098718),\n", " ('2247', '2225', '2228', 'POINT(6.052574 48.817266)', 6.0525736, 48.817266),\n", " ('1752', '2146', '1805', 'POINT(6.05258 49.245267)', 6.0525801, 49.245267),\n", " ('2874', '2885', '2889', 'POINT(6.052582 49.55241)', 6.0525817, 49.55241),\n", " ('2598', '2579', '2579', 'POINT(6.052582 48.072656)', 6.0525818, 48.072656),\n", " ('1509', '1494', '1501', 'POINT(6.052582 49.474438)', 6.0525818, 49.474438),\n", " ('399', '1584', '769', 'POINT(6.052584 49.739217)', 6.0525836, 49.739217),\n", " ('2706', '2713', '2713', 'POINT(6.05259 48.071869)', 6.0525896, 48.071869),\n", " ('373', '2480', '369', 'POINT(6.052592 49.946851)', 6.052592, 49.946851),\n", " ('280', '1416', '1195', 'POINT(6.052593 49.654598)', 6.0525928, 49.654598),\n", " ('1374', '1348', '1355', 'POINT(6.052596 49.063722)', 6.0525959, 49.063722),\n", " ('317', '1001', '295', 'POINT(6.0526 49.727454)', 6.0525999, 49.727454),\n", " ('1060', '1397', '1067', 'POINT(6.052602 49.245451)', 6.0526016, 49.245451),\n", " ('2057', '2031', '2035', 'POINT(6.052607 49.72845)', 6.0526066, 49.72845),\n", " ('1090', '1658', '1662', 'POINT(6.052608 48.589624)', 6.0526084, 48.589624),\n", " ('1879', '2561', '2284', 'POINT(6.052609 49.350351)', 6.0526088, 49.350351),\n", " ('2478', '2478', '2481', 'POINT(6.052617 48.686541)', 6.0526172, 48.686541),\n", " ('2571', '2616', '2620', 'POINT(6.052618 49.416199)', 6.0526177, 49.416199),\n", " ('639', '2501', '938', 'POINT(6.052622 49.538038)', 6.0526223, 49.538038),\n", " ('1318', '1306', '1306', 'POINT(6.052623 49.231211)', 6.052623, 49.231211),\n", " ('265', '243', '247', 'POINT(6.052624 49.796863)', 6.0526242, 49.796863),\n", " ('1333', '1371', '1371', 'POINT(6.052627 48.654885)', 6.0526265, 48.654885),\n", " ('627', '1281', '1281', 'POINT(6.052629 49.651665)', 6.0526286, 49.651665),\n", " ('313', '1181', '935', 'POINT(6.052631 49.805192)', 6.0526313, 49.805192),\n", " ('2685', '2682', '2682', 'POINT(6.052632 49.287904)', 6.0526324, 49.287904),\n", " ('2821', '2821', '2821', 'POINT(6.052641 49.76779)', 6.0526411, 49.76779),\n", " ('429', '504', '512', 'POINT(6.052646 49.231101)', 6.0526455, 49.231101),\n", " ('1135', '2039', '2043', 'POINT(6.052647 49.098008)', 6.0526474, 49.098008),\n", " ('430', '2221', '445', 'POINT(6.052649 48.814671)', 6.052649, 48.814671),\n", " ('1584', '2779', '1558', 'POINT(6.052653 49.469044)', 6.0526527, 49.469044),\n", " ('2358', '2974', '2373', 'POINT(6.052654 49.561095)', 6.0526539, 49.561095),\n", " ('2540', '2533', '2533', 'POINT(6.052666 49.743383)', 6.0526655, 49.743383),\n", " ('314', '1278', '366', 'POINT(6.052668 49.866151)', 6.0526679, 49.866151),\n", " ('2171', '2152', '2156', 'POINT(6.05267 48.01832)', 6.0526698, 48.01832),\n", " ('2254', '3677', '2254', 'POINT(6.052673 48.642002)', 6.0526734, 48.642002),\n", " ('284', '250', '254', 'POINT(6.052679 49.54364)', 6.0526793, 49.54364),\n", " ('2344', '2337', '2344', 'POINT(6.052682 49.289441)', 6.0526817, 49.289441),\n", " ('2164', '2153', '2156', 'POINT(6.052686 49.450238)', 6.0526855, 49.450238),\n", " ('619', '4933', '914', 'POINT(6.052686 48.513847)', 6.052686, 48.513847),\n", " ('606', '1798', '1573', 'POINT(6.052687 49.701503)', 6.0526865, 49.701503),\n", " ('430', '2566', '434', 'POINT(6.052694 49.26022)', 6.0526942, 49.26022),\n", " ('246', '220', '220', 'POINT(6.052696 49.731679)', 6.0526958, 49.731679),\n", " ('232', '198', '198', 'POINT(6.052697 49.426497)', 6.0526968, 49.426497),\n", " ('194', '146', '146', 'POINT(6.052704 48.625518)', 6.0527044, 48.625518),\n", " ('1618', '1614', '1644', 'POINT(6.052707 49.740588)', 6.052707, 49.740588),\n", " ('737', '737', '737', 'POINT(6.052708 49.746317)', 6.0527082, 49.746317),\n", " ('1808', '1786', '1786', 'POINT(6.052712 49.774505)', 6.0527117, 49.774505),\n", " ('2285', '2266', '2285', 'POINT(6.052712 49.725073)', 6.0527123, 49.725073),\n", " ('243', '205', '205', 'POINT(6.052725 48.044608)', 6.0527249, 48.044608),\n", " ('2914', '2903', '2903', 'POINT(6.052726 48.964599)', 6.0527255, 48.964599),\n", " ('1037', '2127', '1052', 'POINT(6.052726 48.638874)', 6.0527262, 48.638874),\n", " ('3199', '3225', '3232', 'POINT(6.052731 49.432655)', 6.0527314, 49.432655),\n", " ('2392', '2381', '2388', 'POINT(6.052732 47.983114)', 6.0527323, 47.983114),\n", " ('709', '2001', '720', 'POINT(6.052738 49.086132)', 6.0527383, 49.086132),\n", " ('3186', '3174', '3174', 'POINT(6.052741 49.537608)', 6.0527411, 49.537608),\n", " ('2523', '2501', '2504', 'POINT(6.052743 48.569315)', 6.0527431, 48.569315),\n", " ('3031', '3027', '3031', 'POINT(6.05274 49.72401)', 6.05274, 49.72401),\n", " ('2216', '2631', '2638', 'POINT(6.052746 48.126519)', 6.0527459, 48.126519),\n", " ('2717', '2698', '2698', 'POINT(6.052747 48.120725)', 6.0527467, 48.120725),\n", " ('1845', '1871', '1878', 'POINT(6.052753 49.947223)', 6.0527527, 49.947223),\n", " ('1948', '1918', '1925', 'POINT(6.052757 49.353152)', 6.0527571, 49.353152),\n", " ('2464', '2449', '2452', 'POINT(6.052765 49.444314)', 6.0527653, 49.444314),\n", " ('1644', '1622', '1633', 'POINT(6.052772 49.372386)', 6.0527722, 49.372386),\n", " ('1336', '1332', '1336', 'POINT(6.052776 48.003197)', 6.0527764, 48.003197),\n", " ('3139', '3210', '3214', 'POINT(6.052784 49.835825)', 6.0527838, 49.835825),\n", " ('314', '307', '310', 'POINT(6.052786 49.704826)', 6.0527856, 49.704826),\n", " ('3326', '3315', '3315', 'POINT(6.052792 49.809556)', 6.0527917, 49.809556),\n", " ('613', '2107', '1381', 'POINT(6.052793 49.322953)', 6.0527926, 49.322953),\n", " ('1837', '1997', '1810', 'POINT(6.052795 48.152855)', 6.0527949, 48.152855),\n", " ('2650', '2617', '2621', 'POINT(6.052798 49.841811)', 6.0527981, 49.841811),\n", " ('2815', '2812', '2812', 'POINT(6.052801 49.767462)', 6.0528009, 49.767462),\n", " ('1677', '1670', '1670', 'POINT(6.052803 49.080617)', 6.0528029, 49.080617),\n", " ('2763', '2718', '2722', 'POINT(6.052803 48.564796)', 6.0528034, 48.564796),\n", " ('2680', '2676', '2680', 'POINT(6.052808 47.996206)', 6.0528079, 47.996206),\n", " ('1123', '1119', '1126', 'POINT(6.052817 49.478398)', 6.0528166, 49.478398),\n", " ('2206', '2191', '2191', 'POINT(6.052817 48.56201)', 6.0528167, 48.56201),\n", " ('1374', '1359', '1359', 'POINT(6.052817 49.056601)', 6.0528172, 49.056601),\n", " ('2834', '3706', '3238', 'POINT(6.052817 49.268445)', 6.0528172, 49.268445),\n", " ('1423', '1408', '1415', 'POINT(6.052824 49.728622)', 6.0528244, 49.728622),\n", " ('397', '1873', '666', 'POINT(6.052829 49.816509)', 6.0528287, 49.816509),\n", " ('2830', '2830', '2834', 'POINT(6.052829 49.563441)', 6.0528292, 49.563441),\n", " ('632', '1777', '1407', 'POINT(6.05283 48.015206)', 6.0528299, 48.015206),\n", " ('726', '4011', '1063', 'POINT(6.052833 48.647872)', 6.0528327, 48.647872),\n", " ('636', '1554', '1558', 'POINT(6.052834 48.810135)', 6.0528336, 48.810135),\n", " ('1681', '2461', '1835', 'POINT(6.052836 48.668482)', 6.0528361, 48.668482),\n", " ('542', '550', '553', 'POINT(6.052836 48.127481)', 6.0528364, 48.127481),\n", " ('1115', '1081', '1089', 'POINT(6.052844 49.472474)', 6.0528444, 49.472474),\n", " ('434', '696', '471', 'POINT(6.052845 49.560267)', 6.0528449, 49.560267),\n", " ('1168', '3558', '1314', 'POINT(6.052848 49.879569)', 6.0528478, 49.879569),\n", " ('2555', '2585', '2592', 'POINT(6.052856 49.742769)', 6.0528562, 49.742769),\n", " ('2392', '3129', '3136', 'POINT(6.052858 49.645191)', 6.052858, 49.645191),\n", " ('303', '243', '247', 'POINT(6.052861 49.464195)', 6.0528607, 49.464195),\n", " ('442', '404', '415', 'POINT(6.052861 48.668274)', 6.0528614, 48.668274),\n", " ('358', '933', '358', 'POINT(6.052874 49.746258)', 6.0528736, 49.746258),\n", " ('365', '1832', '1545', 'POINT(6.052875 48.603129)', 6.0528747, 48.603129),\n", " ('2770', '2785', '2789', 'POINT(6.052875 49.468524)', 6.0528752, 49.468524),\n", " ('2665', '2673', '2673', 'POINT(6.052881 49.26344)', 6.0528811, 49.26344),\n", " ('2721', '2740', '2744', 'POINT(6.052888 48.058958)', 6.052888, 48.058958),\n", " ('508', '1607', '448', 'POINT(6.05289 49.539228)', 6.0528895, 49.539228),\n", " ('2773', '2761', '2761', 'POINT(6.052892 48.572159)', 6.0528922, 48.572159),\n", " ('1758', '1747', '1747', 'POINT(6.052894 48.609211)', 6.0528935, 48.609211),\n", " ('253', '220', '220', 'POINT(6.052895 49.732125)', 6.0528946, 49.732125),\n", " ('2753', '2757', '2757', 'POINT(6.052895 49.740967)', 6.0528949, 49.740967),\n", " ('2613', '2609', '2613', 'POINT(6.0529 49.715567)', 6.0529001, 49.715567),\n", " ('2861', '2857', '2857', 'POINT(6.0529 49.431364)', 6.0529003, 49.431364),\n", " ('539', '2672', '554', 'POINT(6.052902 49.432416)', 6.0529023, 49.432416),\n", " ('2044', '2022', '2029', 'POINT(6.052914 49.274856)', 6.052914, 49.274856),\n", " ('3738', '3723', '3727', 'POINT(6.052914 49.647951)', 6.052914, 49.647951),\n", " ('2631', '2590', '2594', 'POINT(6.052915 48.031417)', 6.0529148, 48.031417),\n", " ('1505', '1486', '1486', 'POINT(6.052916 49.06972)', 6.0529158, 49.06972),\n", " ('3238', '3234', '3242', 'POINT(6.052916 49.698897)', 6.0529158, 49.698897),\n", " ('2175', '2186', '2193', 'POINT(6.052916 49.463559)', 6.0529163, 49.463559),\n", " ('3105', '3168', '3168', 'POINT(6.052919 49.726231)', 6.0529186, 49.726231),\n", " ('298', '3108', '276', 'POINT(6.052919 49.660818)', 6.0529194, 49.660818),\n", " ('945', '1772', '1297', 'POINT(6.052923 49.702202)', 6.0529227, 49.702202),\n", " ('2219', '2219', '2219', 'POINT(6.052925 49.555282)', 6.0529247, 49.555282),\n", " ('441', '1209', '906', 'POINT(6.052926 49.537702)', 6.0529259, 49.537702),\n", " ('2259', '2247', '2247', 'POINT(6.052928 49.372715)', 6.0529281, 49.372715),\n", " ('1738', '1723', '1726', 'POINT(6.052929 48.823378)', 6.0529294, 48.823378),\n", " ('2875', '2849', '2853', 'POINT(6.05293 49.713056)', 6.0529297, 49.713056),\n", " ('299', '265', '265', 'POINT(6.052936 49.033041)', 6.0529356, 49.033041),\n", " ('561', '2165', '1176', 'POINT(6.052936 49.445461)', 6.0529357, 49.445461),\n", " ('557', '2844', '849', 'POINT(6.052937 48.050561)', 6.0529372, 48.050561),\n", " ('751', '784', '796', 'POINT(6.052941 48.12022)', 6.0529406, 48.12022),\n", " ('2944', '2918', '2922', 'POINT(6.052943 49.702868)', 6.0529434, 49.702868),\n", " ('456', '749', '749', 'POINT(6.052944 49.916463)', 6.0529443, 49.916463),\n", " ('228', '194', '194', 'POINT(6.052948 49.022233)', 6.0529478, 49.022233),\n", " ('1406', '2063', '1850', 'POINT(6.052955 48.267105)', 6.0529548, 48.267105),\n", " ('4032', '4036', '4040', 'POINT(6.052958 49.459526)', 6.0529577, 49.459526),\n", " ('1749', '1734', '1741', 'POINT(6.052959 49.239364)', 6.0529591, 49.239364),\n", " ('243', '198', '201', 'POINT(6.052963 49.706425)', 6.0529632, 49.706425),\n", " ('2584', '2558', '2565', 'POINT(6.052964 49.587881)', 6.0529639, 49.587881),\n", " ('753', '1484', '757', 'POINT(6.052964 49.905643)', 6.0529639, 49.905643),\n", " ('2250', '3242', '3250', 'POINT(6.052965 48.996106)', 6.0529646, 48.996106),\n", " ('3225', '3210', '3210', 'POINT(6.052966 49.822338)', 6.0529661, 49.822338),\n", " ('247', '2498', '183', 'POINT(6.052969 49.550064)', 6.0529685, 49.550064),\n", " ('408', '427', '430', 'POINT(6.05297 48.982876)', 6.0529701, 48.982876),\n", " ('844', '829', '833', 'POINT(6.052971 49.728252)', 6.0529708, 49.728252),\n", " ('571', '3268', '1953', 'POINT(6.052973 49.72167)', 6.0529729, 49.72167),\n", " ('220', '179', '179', 'POINT(6.052981 48.066497)', 6.0529809, 48.066497),\n", " ('2048', '2040', '2040', 'POINT(6.052982 49.237185)', 6.0529821, 49.237185),\n", " ...]" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ls = res.fetchall()\n", "ls" ] }, { "cell_type": "markdown", "id": "753c1ebf-d25e-45aa-86a6-cc81fd6ccd9c", "metadata": {}, "source": [ "Cursors are _not idempotent_. Guess what happens now! Now explain the name ;-)" ] }, { "cell_type": "code", "execution_count": 38, "id": "8323f2a7-1a8e-461f-aaf7-f409bc293188", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ls_again = res.fetchall()\n", "ls_again" ] }, { "cell_type": "markdown", "id": "f134d0e0-1277-47c4-b3f1-2aa6a33ff23d", "metadata": {}, "source": [ "So what is the correct thing to do now?" ] }, { "cell_type": "code", "execution_count": 39, "id": "653ef680-7791-411e-841b-480c7c5111f2", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(1,\n", " '1',\n", " 6.050001,\n", " 49.727499,\n", " '3139',\n", " '3139',\n", " '3139',\n", " '3120',\n", " '3139',\n", " '3139',\n", " '3120',\n", " '3139',\n", " '5',\n", " '4.1e+02',\n", " '383.72153',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '0.962',\n", " '0.984',\n", " '0.968',\n", " '0.962',\n", " '0.989',\n", " '0.979',\n", " '0',\n", " '17.7',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@|\\x01\\x00\\x00\\x00\\xb6\\x11Ov33\\x18@\\xb5o\\xee\\xaf\\x1e\\xddH@\\xfe'),\n", " (2,\n", " '2',\n", " 6.0500017,\n", " 49.922155,\n", " '1022',\n", " '2303',\n", " '970',\n", " '872',\n", " '5596',\n", " '1524',\n", " '872',\n", " '5596',\n", " '5',\n", " '2.9e+02',\n", " '2374.1411',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0.948',\n", " '0.990',\n", " '0.960',\n", " '0.948',\n", " '0.994',\n", " '0.980',\n", " '0',\n", " '43.7',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00E\\xfaH\\xa533\\x18@\\xe3k\\xcf,\\t\\xf6H@E\\xfaH\\xa533\\x18@\\xe3k\\xcf,\\t\\xf6H@|\\x01\\x00\\x00\\x00E\\xfaH\\xa533\\x18@\\xe3k\\xcf,\\t\\xf6H@\\xfe'),\n", " (3,\n", " '3',\n", " 6.0500021,\n", " 48.602377,\n", " '380',\n", " '1336',\n", " '332',\n", " '362',\n", " '1336',\n", " '1340',\n", " '332',\n", " '1340',\n", " '4',\n", " '4.4e+02',\n", " '435.97781',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '0.947',\n", " '0.975',\n", " '0.956',\n", " '0.947',\n", " '0.981',\n", " '0.968',\n", " '0',\n", " '0.2',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00\\xe0\\xec \\xc033\\x18@in\\x85\\xb0\\x1aMH@\\xe0\\xec \\xc033\\x18@in\\x85\\xb0\\x1aMH@|\\x01\\x00\\x00\\x00\\xe0\\xec \\xc033\\x18@in\\x85\\xb0\\x1aMH@\\xfe'),\n", " (4,\n", " '4',\n", " 6.0500089,\n", " 48.151979,\n", " '3153',\n", " '3142',\n", " '3142',\n", " '3127',\n", " '3138',\n", " '3142',\n", " '3127',\n", " '3153',\n", " '2',\n", " '4.5e+02',\n", " '422.00537',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '1',\n", " '0.930',\n", " '0.970',\n", " '0.943',\n", " '0.930',\n", " '0.978',\n", " '0.962',\n", " '0',\n", " '-14.2',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00&\\tx\\x8853\\x18@\\xe2VA\\x0ct\\x13H@&\\tx\\x8853\\x18@\\xe2VA\\x0ct\\x13H@|\\x01\\x00\\x00\\x00&\\tx\\x8853\\x18@\\xe2VA\\x0ct\\x13H@\\xfe'),\n", " (5,\n", " '5',\n", " 6.0500102,\n", " 49.58841,\n", " '666',\n", " '4221',\n", " '651',\n", " '33',\n", " '5611',\n", " '2723',\n", " '33',\n", " '5611',\n", " '8',\n", " '3.7e+02',\n", " '2413.7483',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0',\n", " '0.941',\n", " '0.983',\n", " '0.946',\n", " '0.941',\n", " '0.992',\n", " '0.969',\n", " '0',\n", " '22.1',\n", " b'\\x00\\x01\\x00\\x00\\x00\\x00\\x9d\\xdd\\xb5\\xdf53\\x18@\\xd7Q\\xd5\\x04Q\\xcbH@\\x9d\\xdd\\xb5\\xdf53\\x18@\\xd7Q\\xd5\\x04Q\\xcbH@|\\x01\\x00\\x00\\x00\\x9d\\xdd\\xb5\\xdf53\\x18@\\xd7Q\\xd5\\x04Q\\xcbH@\\xfe')]" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = cur.execute('SELECT * FROM eu_y_x_select_6algorithms_fullTable LIMIT 5')\n", "ls = res.fetchall()\n", "ls" ] }, { "cell_type": "markdown", "id": "c1769cc4-046c-4fa2-9b8d-879f8a311ee5", "metadata": {}, "source": [ "Something useful is selecting a different _so called_ **row factory** for cursors to get dictionaries instead of lists." ] }, { "cell_type": "code", "execution_count": 40, "id": "f4ea6515-da25-42a0-b6d4-97a92d06b36d", "metadata": {}, "outputs": [], "source": [ "import sqlite3\n", "db.row_factory = sqlite3.Row" ] }, { "cell_type": "code", "execution_count": 41, "id": "c31645eb-f7b1-49a1-b268-97eb2a0d4f79", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "res = db.execute('SELECT * from eu_y_x_select_6algorithms_fullTable')\n", "row = res.fetchone()\n", "row" ] }, { "cell_type": "code", "execution_count": 42, "id": "e3373ffe-b226-4aa8-84a8-544970babce9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['ogc_fid',\n", " 'id',\n", " 'x',\n", " 'y',\n", " 'a1_95',\n", " 'a2_95',\n", " 'a3_95',\n", " 'a4_95',\n", " 'a5_95',\n", " 'a6_95',\n", " 'min_rh_95',\n", " 'max_rh_95',\n", " 'beam',\n", " 'digital_elev',\n", " 'elev_low',\n", " 'qc_a1',\n", " 'qc_a2',\n", " 'qc_a3',\n", " 'qc_a4',\n", " 'qc_a5',\n", " 'qc_a6',\n", " 'se_a1',\n", " 'se_a2',\n", " 'se_a3',\n", " 'se_a4',\n", " 'se_a5',\n", " 'se_a6',\n", " 'deg_fg',\n", " 'solar_ele',\n", " 'GEOMETRY']" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row.keys()" ] }, { "cell_type": "code", "execution_count": 43, "id": "a95f527a-e4bb-43b5-a7f0-26bc07271252", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row[0]" ] }, { "cell_type": "code", "execution_count": 44, "id": "1538e443-d858-4ce0-ac9e-d450705cc7a3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1, '0')" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "row['ogc_fid'],row['deg_fg']" ] }, { "cell_type": "markdown", "id": "6231f2e9-ad54-4319-a6c8-e88827a121e9", "metadata": {}, "source": [ "So, a typical code looks like this:" ] }, { "cell_type": "code", "execution_count": null, "id": "7e2a1734-6d0e-4cf7-98bb-47ce58739438", "metadata": {}, "outputs": [], "source": [ "for row in res.fetchmany(size=5):\n", " print(row['id'])" ] }, { "cell_type": "markdown", "id": "b893040e-4da2-4545-9ee3-bfb588ee6b8a", "metadata": {}, "source": [ "## Rasterlite, mixing rasters and databases together" ] }, { "cell_type": "markdown", "id": "7e09d2ef-112b-4d0b-9d56-9106738c5b8a", "metadata": {}, "source": [ "As explained before, it also possibile merging raster dataset within the database, as an alternative to distributing files. The rasterlite engine supports colortable, internal pyramids and tiling, so it is unexpectedly efficient, with a small memory footprint for its operations. First of all, it is required\n", "installing a few stuff.\n", "```\n", "sudo apt install rasterlite2-bin libtiff-tools\n", "```" ] }, { "cell_type": "markdown", "id": "15d4de14-9818-4bb1-9ea4-8d37f46bb422", "metadata": {}, "source": [ "_Note that a previous version had a completely different toolset and implementation. What follows is about version 2. Version 1 is officially deprecated._" ] }, { "cell_type": "code", "execution_count": 50, "id": "709f1e56-5979-454e-94a9-bb28fd5184ba", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "did you forget setting some request MODE ?\n", "\n", "\n", "usage: rl2tool MODE [ ARGLIST ]\n", "==============================================================\n", "-h or --help print this help message\n", "-v or --version print version infos\n", "\n", "mode: CREATE\n", "will create a new RasterLite2 Raster Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-smp or --sample-type keyword Sample Type keyword (see list)\n", "-pxl or --pixel-type keyword Pixel Type keyword (see list)\n", "-bds or --num-bands integer Number of Bands\n", "-cpr or --compression keyword Compression keyword (see list)\n", "-qty or --quality integer Compression Quality [0-100]\n", "-tlw or --tile-width integer Tile Width [pixels]\n", "-tlh or --tile-height integer Tile Height [pixels]\n", "-srid or --srid integer SRID value\n", " or\n", "-nosrid or --no-srid\n", "-res or --resolution number pixel resolution(X and Y)\n", "-xres or --x-resol number pixel resolution(X specific)\n", "-yres or --y-resol number pixel resolution(Y specific)\n", "\n", "-nd or --no-data pixel NO-DATA pixel value\n", "\n", "SampleType Keywords:\n", "----------------------------------\n", "1-BIT 2-BIT 4-BIT INT8 UINT8 INT16 UINT16\n", " INT32 UINT32 FLOAT DOUBLE\n", "\n", "PixelType Keywords:\n", "----------------------------------\n", "MONOCHROME PALETTE GRAYSCALE RGB MULTIBAND DATAGRID\n", "\n", "Compression Keywords:\n", "----------------------------------\n", "NONE DEFLATE DEFLATE_NO LZMA LZMA_NO LZ4 LZ4_NO ZSTD ZSTD_NO PNG JPEG WEBP LL_WEBP FAX4 JP2 LL_JP2\n", "\n", "Extra args supported by MULTIBAND:\n", "----------------------------------\n", "-red or --red-band pixel RED band index\n", "-green or --green-band pixel GREEN band index\n", "-blue or --blue-band pixel BLUE band index\n", "-nir or --nir-band pixel NIR band index\n", "-ndvi or --auto-ndvi boolean Enabling/Disabling Auto NDVI\n", "\n", "-strict or --strict-resolution Enables Strict Resolution\n", "-mixed or --mixed-resolution Enables Mixed Resolutions\n", "-paths or --input-paths Enables Input Path recording\n", "-nomd5 or --no-input-md5 Disables Input MD5 checksum\n", "-noxml or --no-xml-summary Disables Input MXL Summariy\n", "\n", "mode: DROP\n", "will drop an existing RasterLite2 Raster Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "\n", "\n", "mode: IMPORT\n", "will create a new Raster Section by importing an\n", "external image or raster file\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-src or --src-path pathname input Image/Raster path\n", "-dir or --dir-path pathname input directory path\n", "-ext or --file-ext extension file extension (e.g. .tif)\n", "-cov or --coverage string Coverage's name\n", "-srid or --srid integer optional: force SRID value\n", "-wf or --worldfile requires a Worldfile\n", "-pyr or --pyramidize immediately build Pyramid levels\n", "\n", "\n", "mode: EXPORT\n", "will export an external image from a Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-dst or --dst-path pathname output Image/Raster path\n", "-cpr or --compression keyword TIFF Compression (see list)\n", "-cov or --coverage string Coverage's name\n", "-base or --base-resolution base resolution\n", "-res or --resolution number pixel resolution(X and Y)\n", "-xres or --x-resol number pixel resolution(X specific)\n", "-yres or --y-resol number pixel resolution(Y specific)\n", "-minx or --min-x number X coordinate (lower-left corner)\n", "-miny or --min-y number Y coordinate (lower-left corner)\n", "-maxx or --max-x number X coordinate (upper-right corner)\n", "-maxy or --max-y number Y coordinate (upper-left corner)\n", "-cx or --center-x number X coordinate (center)\n", "-cy or --center-y number Y coordinate (center)\n", "-outw or --out-width number image width (in pixels)\n", "-outh or --out-height number image height (in pixels)\n", "\n", "In order to export a raster you are expected to specify:\n", "\t- the intended resolution (-res OR -xres AND -yres)\n", "\t- the output image size (-outw AND -outh)\n", "\t- a single tie-point, defined as one of:\n", "\t\t- Output Image Center point: -cx AND -cy\n", "\t\t- Output Image LowerLeft corner: -minx AND -miny\n", "\t\t- Output Image LowerRight corner: -maxx AND -miny\n", "\t\t- Output Image UpperLeft corner: -minx AND -maxy\n", "\t\t- Output Image UpperRight corner: -maxx AND -maxy\n", "\n", "TIFF Compression Keywords:\n", "----------------------------------\n", "NONE DEFLATE LZMA JPEG LZW FAX3 FAX4\n", "\n", "\n", "mode: SECTION-EXPORT\n", "will export an external image from a Coverage/Section\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-dst or --dst-path pathname output Image/Raster path\n", "-cpr or --compression keyword TIFF Compression (see list)\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string Section's name\n", "-sid or --section-id number Section's ID\n", "-base or --base-resolution base resolution\n", "-res or --resolution number pixel resolution(X and Y)\n", "-xres or --x-resol number pixel resolution(X specific)\n", "-yres or --y-resol number pixel resolution(Y specific)\n", "-full or --full-section Full Section's extent: both\n", " Width and Height will be automatically computed\n", " accordingly to resolution.\n", "-minx or --min-x number X coordinate (lower-left corner)\n", "-miny or --min-y number Y coordinate (lower-left corner)\n", "-maxx or --max-x number X coordinate (upper-right corner)\n", "-maxy or --max-y number Y coordinate (upper-left corner)\n", "-cx or --center-x number X coordinate (center)\n", "-cy or --center-y number Y coordinate (center)\n", "-outw or --out-width number image width (in pixels)\n", "-outh or --out-height number image height (in pixels)\n", "\n", "In order to export a raster you are expected to specify:\n", "\t- the intended resolution (-res OR -xres AND -yres)\n", "\t- the output image size (-outw AND -outh)\n", "\t- a single tie-point, defined as one of:\n", "\t\t- Output Image Center point: -cx AND -cy\n", "\t\t- Output Image LowerLeft corner: -minx AND -miny\n", "\t\t- Output Image LowerRight corner: -maxx AND -miny\n", "\t\t- Output Image UpperLeft corner: -minx AND -maxy\n", "\t\t- Output Image UpperRight corner: -maxx AND -maxy\n", "\n", "TIFF Compression Keywords:\n", "----------------------------------\n", "NONE DEFLATE LZMA JPEG LZW FAX3 FAX4\n", "\n", "\n", "mode: DELETE\n", "will delete a Raster Section\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string Section's name\n", "\n", "-sid or --section-id number Section's ID\n", "\n", "mode: PYRAMIDIZE\n", "will (re)build all Pyramid levels supporting a Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string optional: Section's name\n", "-sid or --section-id number optional: Section's ID\n", " default is \"All Sections\"\n", "-f or --force optional: rebuilds from scratch\n", "\n", "\n", "mode: PYRAMIDIZE-MONOLITHIC\n", "will (re)build all Pyramid levels (Monolithic) supporting a Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-lev or --virt-levels number number of virt-levels\n", " could be one of: 1, 2 or 3\n", "\n", "mode: DE-PYRAMIDIZE\n", "will delete Pyramid levels\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string optional: Section's name\n", "-sid or --section-id number optional: Section's ID\n", " default is \"All Sections\"\n", "\n", "mode: LIST\n", "will list Raster Sections within a Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string optional: Section's name\n", "-sid or --section-id number optional: Section's ID\n", " default is \"All Sections\"\n", "\n", "mode: MAP\n", "will output a PNG Map representing all Raster Sections\n", "within a Coverage\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-dst or --dst-path pathname output Image/Raster path\n", "-outw or --out-width number image width (in pixels)\n", "-outh or --out-height number image height (in pixels)\n", "\n", "\n", "mode: CATALOG\n", "will list all Coverages from within a RasterLite2 DB\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "\n", "\n", "mode: HISTOGRAM\n", "will create a PNG showing a band Histogram\n", "==============================================================\n", "-db or --db-path pathname RasterLite2 DB path\n", "-cov or --coverage string Coverage's name\n", "-sec or --section-name string optional: Section's name\n", "-sid or --section-id number optional: Section's ID\n", " default is \"Coverage statistics\"\n", "-bnd or --band-index integer a valid band index\n", " default is band index 0\n", "-dst or --dst-path pathname output PNG path\n", " default is ./hist_cov_sec_idx.png\n", "\n", "optional DB specific settings:\n", "==============================================================\n", "-mt or --max-threads num max number of concurrent threads\n", "-cs or --cache-size num DB cache size (how many pages)\n", "-m or --in-memory using IN-MEMORY database\n", "-jo or --journal-off unsafe [but faster] mode\n" ] } ], "source": [ "!rl2tool 2>&1 # Do you know stderr vs stdout difference? " ] }, { "cell_type": "markdown", "id": "516e10d2-0e67-4b12-8e09-cefa2430f04c", "metadata": {}, "source": [ "Some general information: a limited number of formats is directly supported, that is (Geo)TIFF, JPG and Grid with an optional world file to describe a geotransform. The coverage is mainly tought as a compact _prêt-à-porter_ distribution with styles included. For instance, a very simple WMS server (`wmslite`) is one of the include tools for visualization from a conventional desktop GIS such as QGIS." ] }, { "cell_type": "markdown", "id": "4304ae15-0aec-4d15-867c-e88116c57ac6", "metadata": {}, "source": [ "## A simple example with rasterlite2" ] }, { "cell_type": "code", "execution_count": 51, "id": "2ecb3828-ee36-4ac8-bccb-6c3dc13bd749", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Driver: GTiff/GeoTIFF\n", "Files: geodata/dem/GMTED2010.tif\n", " geodata/dem/GMTED2010.tif.aux.xml\n", "Size is 720, 600\n", "Coordinate System is:\n", "GEOGCRS[\"WGS 84\",\n", " ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n", " MEMBER[\"World Geodetic System 1984 (Transit)\"],\n", " MEMBER[\"World Geodetic System 1984 (G730)\"],\n", " MEMBER[\"World Geodetic System 1984 (G873)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1150)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1674)\"],\n", " MEMBER[\"World Geodetic System 1984 (G1762)\"],\n", " MEMBER[\"World Geodetic System 1984 (G2139)\"],\n", " ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n", " LENGTHUNIT[\"metre\",1]],\n", " ENSEMBLEACCURACY[2.0]],\n", " PRIMEM[\"Greenwich\",0,\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " CS[ellipsoidal,2],\n", " AXIS[\"geodetic latitude (Lat)\",north,\n", " ORDER[1],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " AXIS[\"geodetic longitude (Lon)\",east,\n", " ORDER[2],\n", " ANGLEUNIT[\"degree\",0.0174532925199433]],\n", " USAGE[\n", " SCOPE[\"Horizontal component of 3D system.\"],\n", " AREA[\"World.\"],\n", " BBOX[-90,-180,90,180]],\n", " ID[\"EPSG\",4326]]\n", "Data axis to CRS axis mapping: 2,1\n", "Origin = (29.000000000000000,4.000000000000000)\n", "Pixel Size = (0.008333333340000,-0.008333333340000)\n", "Metadata:\n", " AREA_OR_POINT=Area\n", "Image Structure Metadata:\n", " INTERLEAVE=BAND\n", "Corner Coordinates:\n", "Upper Left ( 29.0000000, 4.0000000) ( 29d 0' 0.00\"E, 4d 0' 0.00\"N)\n", "Lower Left ( 29.0000000, -1.0000000) ( 29d 0' 0.00\"E, 1d 0' 0.00\"S)\n", "Upper Right ( 35.0000000, 4.0000000) ( 35d 0' 0.00\"E, 4d 0' 0.00\"N)\n", "Lower Right ( 35.0000000, -1.0000000) ( 35d 0' 0.00\"E, 1d 0' 0.00\"S)\n", "Center ( 32.0000000, 1.5000000) ( 32d 0' 0.00\"E, 1d30' 0.00\"N)\n", "Band 1 Block=720x5 Type=Int16, ColorInterp=Gray\n", " Min=523.000 Max=4788.000 \n", " Minimum=523.000, Maximum=4788.000, Mean=1146.933, StdDev=318.701\n", " NoData Value=-32768\n", " Metadata:\n", " STATISTICS_MAXIMUM=4788\n", " STATISTICS_MEAN=1146.9329444444\n", " STATISTICS_MINIMUM=523\n", " STATISTICS_STDDEV=318.7007155709\n", " STATISTICS_VALID_PERCENT=100\n" ] } ], "source": [ "!gdalinfo -stats geodata/dem/GMTED2010.tif" ] }, { "cell_type": "markdown", "id": "e576337d-787e-4fdd-9944-63de613767d9", "metadata": {}, "source": [ "Our goal is loading this simple coverage in an ad-hoc Rasterlite database" ] }, { "cell_type": "code", "execution_count": 52, "id": "29096cd7-8b88-479d-a0c2-fd580ff6b664", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "rl2tool: request is CREATE\n", "===========================================================\n", " DB path: /tmp/dem.sqlite\n", " Coverage: GMTED2010\n", " Sample Type: INT16\n", " Pixel Type: DATAGRID\n", " Number of Bands: 1\n", " NO-DATA pixel: -32768\n", " Compression: LZMA DeltaFilter (7-zip, lossless)\n", " Tile size (pixels): 512 x 512\n", " Srid: 4326\n", "Pixel base resolution: X=0.00833333334 Y=0.00833333334\n", "======= Coverage Policies =======\n", "Strict Resolution check: Disabled\n", " Mixed Resolutions mode: Disabled\n", " Section's Input Paths: Disabled\n", " Section's MD5 Checksum: Enabled\n", " Section's XML Summary: Enabled\n", "===========================================================\n", "\n", " SQLite version: 3.37.2\n", " SpatiaLite version: 5.0.1\n", "RasterLite2 version: 1.1.0-beta1\n", "\n", "Raster Coverage \"GMTED2010\" successfully created\n", "\n", "Operation CREATE successfully completed\n" ] } ], "source": [ "! rm -f /tmp/dem.sqlite\n", "! rl2tool CREATE -db /tmp/dem.sqlite -cov GMTED2010 -smp INT16 -pxl DATAGRID -cpr LZMA -srid 4326 -res 0.008333333340000 -nd -32768" ] }, { "cell_type": "markdown", "id": "03eea044-b5c4-4ecd-b7ba-d5aa4144aa13", "metadata": {}, "source": [ "Now it is possible to load the GeoTIFF file:" ] }, { "cell_type": "code", "execution_count": 53, "id": "9f7d9ba6-0ed6-4ec5-b2e4-1ddb5d871862", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "rl2tool; request is IMPORT\n", "===========================================================\n", " DB path: /tmp/dem.sqlite\n", " Input Source path: geodata/dem/GMTED2010.tif\n", " Coverage: GMTED2010\n", "Using the WorldFile\n", " Forced SRID: 4326\n", "Immediately building Pyramid Levels\n", "===========================================================\n", "\n", " SQLite version: 3.37.2\n", " SpatiaLite version: 5.0.1\n", "RasterLite2 version: 1.1.0-beta1\n", "\n", "------------------\n", "Importing: geodata/dem/GMTED2010.tif\n", " Image Size (pixels): 720 x 600\n", " SRID: 4326\n", " LowerLeft Corner: X=29.00 Y=-1.00\n", " UpperRight Corner: X=35.00 Y=4.00\n", " Pixel resolution: X=0.00833333334 Y=0.00833333334\n", ">> Image successfully imported in: 0 mins 01 secs\n", " ----------\n", " Pyramid levels successfully built for Section 1\n", ">> Total time: 0 mins 01 secs\n", "\n", "Operation IMPORT successfully completed\n" ] } ], "source": [ "! rl2tool IMPORT -db /tmp/dem.sqlite -cov GMTED2010 -srid 4326 -wf -src geodata/dem/GMTED2010.tif -pyr" ] }, { "cell_type": "markdown", "id": "4a530d93-0d8e-412c-8639-8eea85ebc6f0", "metadata": {}, "source": [ "Styling needs to be specified using a SLD (OGC standard, also managed in Qgis)." ] }, { "cell_type": "code", "execution_count": 54, "id": "b637ab89-06f1-411b-81da-3e65410bb57a", "metadata": {}, "outputs": [], "source": [ "# spatialite-gui /tmp/dem.splite" ] }, { "cell_type": "code", "execution_count": 55, "id": "d7910074-b214-4748-997b-9b6318bb3266", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "\tetopo\n", "\t\n", "\t\tETOPO1 Color Map\n", "\t\tderived from the original \"etopo2\" color rule (GRASS GIS)\n", "\t\n", "\t1.0\n", "\t\n", "\t\t\n", "\t\t\tRasterdata\n", "\t\t\t\n", "\t\t\t\t-11000.00000000\n", "\t\t\t\t#000000\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t-5000.00000000\n", "\t\t\t\t#000064\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t-1000.00000000\n", "\t\t\t\t#3232c8\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t-1.00000000\n", "\t\t\t\t#9696ff\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t0.00000000\n", "\t\t\t\t#009600\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t270.00000000\n", "\t\t\t\t#5aa55a\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t300.00000000\n", "\t\t\t\t#5aaf5a\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t500.00000000\n", "\t\t\t\t#32b432\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t500.00000000\n", "\t\t\t\t#46aa46\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t1000.00000000\n", "\t\t\t\t#46914b\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t1000.00000000\n", "\t\t\t\t#469b4b\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t2000.00000000\n", "\t\t\t\t#969c64\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t3000.00000000\n", "\t\t\t\t#dcdcdc\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t4000.00000000\n", "\t\t\t\t#f5f5f5\n", "\t\t\t\n", "\t\t\t\n", "\t\t\t\t8850.00000000\n", "\t\t\t\t#ffffff\n", "\t\t\t\n", "\t\t\n", "\t\n", "\n" ] } ], "source": [ "! cat etopo1_styles/etopo.xml" ] }, { "cell_type": "code", "execution_count": null, "id": "0f205b76-df4f-4eb6-9528-dc7ec52e64b0", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }