[FOSSGIS-Talk] was macht ein Index bei Vektordaten?

Thomas B rdbath.regiodata at gmail.com
Do Feb 15 18:05:03 CET 2024


Hallo in die Runde,
ich will auch mal noch meinen "Senf" zum Thema qix-Datei bei Shapefiles
dazugeben bzw. zum automatischen Löschen der qix.

Mir ist schon öfters vorgekommen, dass gerade im Zusammenhang mit
aktiviertem Snapping und aktivem Knotenwerkzeug QGIS durcheinanderkam, wenn
während des Speicherns eine vorher existierende qix-Datei plötzlich fehlte
bzw. dass das Problem von einem ins Nirvana snappenden Vertex-Tool konnte
durch das Neu-Erzeugen des spatial index behoben werden im laufenden
Betrieb.

Daher hatte ich im Mai 2023 schon mal Kontakt mit einem unserer externen
QGIS-Dienstleister ( qcooperative ). Alessandro Pasotti hatte dann etwas am
OGR-Provider umgeschrieben, so dass beim Speichern von Shapefiles mit schon
existierender qix-Datei diese beim Speichern des Shapefiles nicht nur
gelöscht, sondern danach auch neu erstellt werden. Somit hat man nach dem
Speichern auch wieder einen räumlich indizierten Layer. ( Hab ich gerade in
QGIS 3.34 getestet und funktioniert.)

https://github.com/qgis/QGIS/pull/53186

Beim Testen kam aber heraus, dass für einen Fall das noch nicht
funktioniert, nämlich, wenn man
a: das Shapefile ohne qix in QGIS lädt und dann
b: einen räumlichen Index erstellen lässt in QGIS und
c: danach Änderungen am Shapefile speichert.
(alles sozusagen in einer "Session" bzw. in ein und demselben QGIS-Fenster)

Also ein nicht gerade unrealistischer Vorgang.
Ich hab das heute Alessandro Pasotti kurz rückgemeldet und er hat für
diesen Fall auch einen Pull-Request gestellt:

https://github.com/qgis/QGIS/pull/56366/

@Stefan: ich gebe dir Recht, dass man keine Gelegenheit auslassen sollte,
auf Alternativen zum Shapefile hinzuweisen. Ich persönlich hatte aufgrund
der Deadlock-Problematik der Geopackages (abgelegt auf Netzlaufwerken)
etwas Abstand genommen für wichtige Daten, aber habe es ehrlich gesagt in
letzter Zeit auch nicht mehr unter "rauhen Bedingungen" getestet. Wenn
möglich ist natürlich auch PostgreSQL/PostGIS eine feine Sache als
Alternative zu Shapefiles, aber sicher passt das nicht für jeden User.

Ich persönlich halte übrigens beim Thema Umgang mit qix-Dateien beide
Möglichkeiten für suboptimal... sowohl das reine Löschen der qix bei
Änderungen als auch das komplette Neu-Erzeugen bei jedem Speichern, gerade
bei großvolumigen Layern. Aber die qix kann man wohl nicht  nur in
Teilmengen aktualisieren. Daher denke ich besser mit einem aktuellen Index
als ohne.


VG
Thomas

PS: Hier noch eine einfache Visualisierung, wie man sich z.B. die
Aufteilung des Extents, in dem innerhalb eines Layers Features liegen,
mittels eines Quadtree-Index vorstellen kann:

https://ibesora.github.io/Leaflet.Quadtree/demos/drawTree/demo.html

Einfach selbst Punkte per Klick in die Karte setzen... mal dichter
beieinander, mal weniger dicht... und schauen, wie der relevante Bereich in
Unterbereiche aufgeteilt wird.
Diese Unterbereiche können dann genutzt werden, um zu überprüfen, welche
Objekte in welchem Bereich liegen.

PS2: Für existierende Shp-Layer scheint es auch möglich zu sein, sich die
im qix gespeicherten Index-Unterbereiche als Shape rauszulassen mit
shptreevis https://mapserver.org/utilities/shptreevis.html#shptreevis  bzw.
für einen Ausschnitt zu testen, was der Index als ID's zurückliefert:
https://mapserver.org/utilities/shptreetst.html#shptreetst  . Hab ich
beides selbst aber noch nicht getestet :

Screenshot quadtree-demo:
[image: grafik.png]



Am Mo., 12. Feb. 2024 um 10:14 Uhr schrieb Stefan Giese (WhereGroup) via
FOSSGIS-Talk-Liste <fossgis-talk-liste at fossgis.de>:

> ja sehr interessante Diskussion: tatsächlich löscht QGIS den räumlichen
> Index nachdem das Shapefile editiert wird, z.B. ein neuer Datensatz dazu
> gefügt wird...
>
> QGIS legt den räumlichen Index in der Datei /mein_shapefile.qix /ab -
> neben dem ganzen anderen Shapedateien (cpg=Codepage, prj=projektion
> etc...) , diese Datei wird gelöscht, legt man einen neuen Datensatz in
> der Shapedatei an. Aktualisiert man danach den räumlichen Index über die
> Layereigenschaften, ist die .qix Datei wieder da....
>
> was lernen wir daraus: besser Geopackage verwenden und langsam mal das
> Shapefile aus den Köpfen und Computern und GIS Systemen verbannen
> (http://switchfromshapefile.org/)
>
> Viele Grüße
>
> Stefan
>
> Am 12.02.2024 um 09:56 schrieb Jörg Thomsen (WhereGroup) via
> FOSSGIS-Talk-Liste:
> > Hallo,
> >
> > Am 12.02.24 um 09:31 schrieb WALDbewirtschaften via FOSSGIS-Talk-Liste:
> >> Liebe Liste,
> > ...
> >> Wo kann ich eine (möglichst deutschsprachige Erklärung) finden?
> >
> > ich finde, das hat Lars schon gut erklärt:
> >> Der Shapeindex erzeugt einen geometrischen Index basierend auf den
> >> Daten.
> >> Wenn ein Programm jetzt nur eine Teilmenge benötigt, kann mit Hilfes des
> >> Index gezielt der Datenbereich gelesen werden. Es muss dann nicht
> >> mehr die
> >> vollständige Datei durchsucht werden.
> >> Problem ist, wenn man die Daten also das Shapefile aktualisiert, muss
> >> auch
> >> der Index aktualisiert werden.
> >
> > Aber - @Lars:
> > Ist es wirklich so, dass beim Speichern einer shape-Datei (nach
> > Änderung der geometrien (.shp) die .idx nicht automatisch aktualisiert
> > wird? Ja das Format an sich ist alt und es gibt Besseres, aber ich
> > hätte von QGIS erwartet, dass der index beim Speichern mit
> > aktualisiert wird.
> >
> > Viele Grüße, Jörg
> >
> --
> Mit freundlichen Grüßen
> Stefan Giese
> Projektleiter/Consultant
> **********************************
> FOSSGIS Konferenz
> 20.-23. März 2024 in Hamburg
> https://www.fossgis-konferenz.de/2024/
>
> WhereGroup-Beiträge auf der FOSSGIS
> https://wheregroup.com/unternehmen/aktuelles/
> **********************************
> WhereGroup GmbH
> Schwimmbadstr. 2
> 79100 Freiburg
> Germany
>
> Tel.: +49 (0)761 / 519 102 - 61
> Fax: +49 (0)761 / 519 102 - 11
>
> stefan.giese at wheregroup.com
> www.wheregroup.com
> Geschäftsführer:
> Olaf Knopp, Peter Stamm
> Amtsgericht Bonn, HRB 9885
> --
> ....................................................................
> FOSSGIS-Konferenz 2024 mit OpenStreetMap-Event in Hamburg!
> 20.-23. März 2024 an der TUHH - https://www.fossgis-konferenz.de/
>
> FOSSGIS Vereinstermine:
> https://fossgis.de/aktivit%C3%A4ten/termine/
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem
> GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/          https://mastodon.online/@FOSSGISeV
>                                  https://twitter.com/FOSSGIS_Verein
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : grafik.png
Dateityp    : image/png
Dateigröße  : 606358 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.fossgis.de/pipermail/fossgis-talk-liste/attachments/20240215/89555013/attachment.png>


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste