Come migliorare le prestazioni di rendering di un file di forma molto grande?


20

Ho un file di forma poligonale con un componente di file .dbf da 100 MB e .shp da 500 MB. Il motivo per cui è così grande, è che è classificato come base per un intero distretto.

Ogni volta che visualizzo il file in ArcCatalog o ArcMap e sposto leggermente la finestra di visualizzazione, l'intero file deve essere ridisegnato da zero. Ho provato l'indicizzazione spaziale e l'importazione in un geodatabase - nessuno dei due approcci fornisce alcun notevole miglioramento delle prestazioni rispetto al rendering.

La pagina di aiuto di Esri suggerisce che per migliorare le prestazioni del file di forma, l'utente può generalizzare il file . Anche se ovviamente funzionerebbe, non voglio perdere alcuna informazione. Dividere il file non è l'ideale poiché sto facendo un sacco di geoprocessing / query con la sua intera area. Immagino di poter evitare di visualizzare l'intera area contemporaneamente, ma a volte, ad esempio, è bene vedere quali parti del file sono state selezionate da una query.

Esiste un altro approccio che potrei adottare per migliorare le prestazioni di rendering?

(In teoria, costruire "piramidi" di shapefile sarebbe l'ideale - non sono sicuro del motivo per cui ArcGIS non ha mai supportato un simile approccio - almeno di cui sono a conoscenza ...)


2
Avere un file di forma così grande, sta solo chiedendo problemi. Nella mia esperienza, gli shapefile di grandi dimensioni tendono a corrompersi molto facilmente. Scaricalo in un file geodatabase, per evitare la corruzione. Una migliore prestazione di disegno sarebbe un ulteriore vantaggio.
Devdatta Tengshe,

Come ho appena accennato in precedenza, ho scoperto che l'importazione di un grande file di forma in un gdb non crea alcun miglioramento, da un punto di vista puramente di rendering. Hai ragione, però, dal punto di vista generale non ha molto senso non avere un file shp di grandi dimensioni in un gdb (per tutti i tipi di motivi).
Youzer,

2
Hai mai pensato di usare un raster invece di uno shapefile?
Kirk Kuykendall,

sono confuso in una cosa che succede se la dimensione del file è 2 GB e anche la memoria del computer è 2 GB, allora come Arcgis gestirà questi dati del file in quanto consumerà memoria piena
user2174920

se hai milioni di piccoli poligoni, avresti dovuto usare raster è il famigerato detto (a meno che tu non stia creando uno strato di terreno ...)
Se non lo sai, basta GIS l'

Risposte:


22

I miei pensieri sono:

  1. Esporta il tuo shapefile in una classe di funzionalità di geodatabase di file: penso che le prestazioni del suo disegno saranno migliori ma non sono sicuro di quanto
  2. Se si utilizza ArcGIS Desktop 10.0 o versione successiva, spostarlo in un livello mappa di base : ciò migliorerà notevolmente le prestazioni del disegno
  3. Se ti piace il suono delle piramidi per i dati vettoriali, assicurati di votare per questa idea ArcGIS .

3
Tranne il fatto che non è possibile eseguire analisi o selezioni sugli strati IIRC della mappa di base.
blah238,

4
Sospetto che potrebbe essere aggirato avendo un secondo livello in TOC che punta alla stessa fonte e non un livello di mappa di base, che di solito è spento ma può essere visualizzato quando richiesto per l'analisi o la selezione.
PolyGeo

PolyGeo - grazie per la risposta. Ho provato il baselayer e in effetti un notevole miglioramento delle prestazioni è quando si fa clic su "zoom su layer", il file non viene riprodotto da zero. La soluzione alternativa che suggerisci dato il commento di blah238 potrebbe forse funzionare da alcuni progetti, ma ho trovato una cosa aggiuntiva che limita l'uso del baselayer è che non puoi visualizzare il dbf usando alcuna simbologia. Con questa limitazione, potrei anche generare il file come riferimento (non uno strato di base), quindi scoprire il livello "reale" quando necessario. Non è proprio un'ottima soluzione .. Voterò l'idea di "piramidi" come mi suggerisci!
Youzer,

6

Ci sono molti suggerimenti per migliorare le prestazioni di ArcMap che potrebbero aiutare, ma ecco tre suggerimenti che ho usato.

  1. Mi assicurerei che il sistema di coordinate del frame di dati corrisponda al mio file di forma e a tutti gli altri livelli che ho nel sommario; ma minore è il numero di strati da visualizzare, meglio è.
  2. Utilizzerei solo la mia simbologia basata su linee semplici e riempimenti senza trasparenza o altre complessità.
  3. Se hai bisogno sia di una panoramica che della possibilità di eseguire una panoramica ravvicinata, prendi in considerazione l'uso della lente d'ingrandimento o del visualizzatore.

consiglio generalmente molto buono. Ho effettivamente implementato tutti questi nei miei test iniziali - sembra che siano necessari più / diversi trucchi per gestire classi / shapefile molto grandi.
Youzer,

4

È possibile migliorare il rendering impostando i parametri di visualizzazione del layer in modo che il layer non venga visualizzato su larga scala (ad es.> 1: 10.000). È possibile trovare questa opzione nelle proprietà del livello: Proprietà livello> Scheda Generale> "Non mostrare il livello quando si esegue lo zoom indietro oltre ..."

Inoltre, la posizione di archiviazione è importante: ad esempio, se è archiviata su un vecchio server con scarsa larghezza di banda, si garantisce che le prestazioni sono scarse. Gestisco di routine 1 GB + dati vettoriali su un server, il che mi fa chiedere se le specifiche del sistema devono essere aggiornate (per riferimento, sto eseguendo 12 GB di RAM, 2a generazione i7, scheda grafica media).

inserisci qui la descrizione dell'immagine


3

Devi rendere la mappa per fare le tue domande? Cosa succede se si eseguono script Python e si accede ai dati senza disegnare la mappa? Non sono sicuro del tuo esatto processo, necessità, ecc., Ma un pensiero.


3

Come un seguito alla risposta di Aaron , potresti anche utilizzare una query di definizione per limitare il numero di risultati restituiti per la visualizzazione (e include l'analisi - credo che funzioni molto come una selezione). Se non tutte le funzioni sono necessarie per la visualizzazione in un dato momento e non si cambia zona in tonnellate, una query di definizione potrebbe essere una soluzione praticabile, sebbene non una risposta esatta alla domanda o alle esigenze.


3

Sento la tua frustrazione. Lavoro regolarmente con file di forma di grandi dimensioni come questo e non ho problemi di visualizzazione, in generale. Sono d'accordo con tutti i commenti sopra, soprattutto assicurandomi che tutto sia nella stessa proiezione, incluso il frame di dati. Presumo che tu abbia copiato il file localmente e non stai provando ad accedervi tramite la rete? Una cosa che causerà problemi di visualizzazione con shapefile di queste dimensioni è se ci sono un numero estremo di vertici, come in una rete di flusso. L'unica soluzione che ho trovato a questo è la creazione di uno script Python per eseguire al volo le definizioni dei layer, quindi ne disegno solo alcuni alla volta. Un'altra cosa sarebbe aggiornare la memoria grafica e la scheda grafica del computer.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.