Ich muss eine große Anzahl (Hunderte) von Verbreitungskarten von Arten erstellen. Ich habe ein Shapefile, das die Verteilungen für jede Art enthält, und für jede möchte ich eine Karte als Bild (jpg, png oder auf andere Weise) erhalten, die den Namen der betreffenden Art, die Legende (zur Unterscheidung von Gebieten von) enthält jährliche Verteilung, Zucht, Nichtzucht usw. ...).
Ich würde gerne QGIS verwenden, um dies zu tun.
qgis
qgis-processing
map-book
Onesime
quelle
quelle
Antworten:
Ich hatte eine ähnliche Anforderung und stellte ein QGIS-Plugin zusammen, um die Karten zu generieren, basierend auf einem Shapefile mit Punktlokalitäten für alle Arten (es wird ein eindeutiger Taxonname in der Attributtabelle als gemeinsamer Bezeichner angenommen). Meine Anforderungen waren nicht so komplex - ich brauchte keine saisonalen Informationen, Titel oder Legenden, aber es könnte ein nützlicher Ausgangspunkt für Sie sein. Für die komplexeren Aspekte müssen Sie den Map Composer verwenden. Weitere Informationen hierzu finden Sie im PyQGIS-Kochbuch .
Plugin
Das Plugin automatisiert die Erstellung der Karten und ermöglicht Ihnen die Konfiguration von Ausmaßen, Auflösung und anderen Aspekten. Es wendet denselben Stil auf die Ausgabe an wie Ihre Rasterüberlagerung. Derzeit läuft es nur auf der Entwicklungsversion von QGIS (1.9 oder höher).
Sextante-Skript
Bevor ich das Plugin gemacht habe, habe ich die Logik mit SEXTANTE ausgearbeitet. Dieses Benutzerskript sollte auch in Version 1.8 funktionieren (habe es nicht getestet). Die Verteilungsstildatei (.qml) ist der Stil der Ausgabeverteilungen (sie ignoriert den Stil der Verteilungsüberlagerung). Derzeit werden Ausgabekarten basierend auf den Standardeinstellungen Ihres Betriebssystems im temporären Verzeichnis abgelegt (/ tmp unter Linux und an verschiedenen Stellen in Windows - definiert durch die Umgebungsvariable TEMP). Sie können dies jedoch ziemlich einfach selbst im Code definieren. Sie müssen auch den Umfang und die Ausgabeauflösung im Code bearbeiten (und die Hintergrundfarbe, wenn Sie eine andere Farbe für das Meer wünschen).
quelle
selectbylocation
Schritt entfernenselectbyattribute
undsaveselectedfeatures
für jede Jahreszeit einen zusätzlichen und einen Schritt hinzufügen (wechselngrid_layer
zuall_localities
). Laden Sie dann weitere XML-Dateien und fügen Sie Ihre saisonalen Shapefiles hinzu (oberste Ebene zuerst angehängt). Wenn Sie sich nicht sicher sind, wie, könnte ich wahrscheinlich versuchen, das obige Skript so zu bearbeiten, dass es mehr oder weniger funktioniert.Ich habe heute wenig Zeit gebraucht, um daran zu arbeiten. Also habe ich einige Änderungen an Ihrem Skript vorgenommen. Ich muss keinen zusätzlichen Schritt selectbyattribute hinzufügen und ausgewählte Funktionen speichern, da ich XML-Dateien verwende und das Feld Seasonal im selben Shapefile ist. Unten können Sie sehen, was ich getan habe:
Wenn Sie eine Bemerkung oder einen Rat zur Verbesserung haben, zögern Sie nicht.
Um dies zu verbessern, ist es am besten, wenn wir das Ausmaß auswählen (zum Beispiel Europa), dieses Ausmaß zu verwenden, um nur Arten auszuwählen, die in diesem Ausmaß enthalten sind. Dies liegt daran, dass ich Karten für alle Arten erhalte, auch für solche außerhalb Europas (also habe ich viele leere Karten). Denkst du das ist möglich?
Prost,
Onesime
quelle