Ich habe ein Polygon-Shapefile mit einer 100 MB-DBF- und einer 500 MB-SHP-Dateikomponente. Der Grund, warum es so groß ist, ist, dass es als Landbasis für einen ganzen Bezirk klassifiziert ist.
Jedes Mal, wenn ich die Datei in ArcCatalog oder ArcMap anzeige und das Ansichtsfenster leicht verschiebe, muss die gesamte Datei neu gezeichnet werden. Ich habe versucht, räumliche Indizes zu erstellen und in eine Geodatabase zu importieren. Bei beiden Methoden ist keine deutliche Leistungsverbesserung beim Rendern zu verzeichnen.
Auf der Hilfeseite von Esri wird vorgeschlagen, dass der Benutzer die Datei verallgemeinern kann, um die Leistung von Shapefiles zu verbessern . Das würde natürlich funktionieren, aber ich möchte keine Informationen verlieren. Das Aufteilen der Datei ist nicht ideal, da ich viele Geoverarbeitungen / Abfragen mit dem gesamten Bereich durchführe. Ich schätze, ich könnte vermeiden, den gesamten Bereich auf einmal anzuzeigen - aber manchmal ist es zum Beispiel gut zu sehen, welche Teile der Datei von einer Abfrage ausgewählt wurden.
Gibt es einen anderen Ansatz, um die Renderleistung zu verbessern?
(Theoretisch wäre es ideal, Shapefile-Pyramiden zu erstellen. Ich bin mir nicht sicher, warum ArcGIS einen solchen Ansatz noch nie unterstützt hat. Zumindest ist mir dies bekannt.)
Antworten:
Meine Gedanken sind:
quelle
Es gibt viele Tipps zur Verbesserung der ArcMap-Leistung, die möglicherweise hilfreich sind. Hier sind jedoch drei Vorschläge, die ich verwendet habe.
quelle
Sie können das Rendern verbessern, indem Sie die Layer-Anzeigeparameter so einstellen, dass der Layer nicht in großem Maßstab angezeigt wird (z. B.> 1: 10.000). Diese Option finden Sie in den Ebeneneigenschaften: Ebeneneigenschaften> Registerkarte "Allgemein"> "Keine Ebene anzeigen, wenn darüber hinaus gezoomt wird ..."
Auch der Speicherort spielt eine Rolle. Wenn der Speicherort beispielsweise auf einem alten Server mit geringer Bandbreite gespeichert wird, ist eine schlechte Leistung garantiert. Ich verarbeite routinemäßig 1 GB + Vektordaten über einen Server, was mich zu der Frage veranlasst, ob Ihre Systemspezifikationen aktualisiert werden müssen (als Referenz verwende ich 12 GB RAM, i7 der zweiten Generation, durchschnittliche Grafikkarte).
quelle
Müssen Sie die Karte rendern, um Ihre Anfragen zu stellen? Was ist, wenn Sie Python-Skripte ausgeführt und auf die Daten zugegriffen haben, ohne die Karte zu zeichnen? Ich bin mir nicht sicher, wie genau Sie vorgehen, was Sie brauchen usw., aber ein Gedanke.
quelle
Als eine Art Folgemaßnahme zu Aarons Antwort könnten Sie auch eine Definitionsabfrage verwenden, um die Anzahl der zur Visualisierung zurückgegebenen Ergebnisse zu begrenzen. Wenn nicht alle Funktionen für die Anzeige zu einem bestimmten Zeitpunkt benötigt werden und Sie nicht die Region wechseln, kann eine Definitionsabfrage eine praktikable Lösung sein, jedoch keine genaue Antwort auf Ihre Frage oder Ihre Bedürfnisse.
quelle
Ich höre deine Frustration. Ich arbeite routinemäßig mit so großen Shapefiles und habe im Allgemeinen keine Anzeigeprobleme. Ich stimme allen obigen Kommentaren zu und stelle insbesondere sicher, dass sich alles in derselben Projektion befindet, einschließlich des Datenrahmens. Ich gehe davon aus, dass Sie die Datei lokal kopiert haben und nicht versuchen, über das Netzwerk darauf zuzugreifen. Eine Sache, die bei Shapefiles dieser Größe zu Anzeigeproblemen führt, ist, dass es eine extreme Anzahl von Scheitelpunkten gibt, wie in einem Stream-Netzwerk. Die einzige Lösung, die ich dafür gefunden habe, ist die Erstellung eines Python-Skripts, mit dem Ebenendefinitionen im laufenden Betrieb erstellt werden können. Ich zeichne also immer nur einige auf einmal. Eine andere Sache wäre, den Grafikspeicher und die Grafikkarte Ihres Computers zu aktualisieren.
quelle