Raggruppare poligoni contigui che toccano l'angolo usando ArcGIS Desktop?


12

Usando ArcGIS 10, ho una classe caratteristica che ho convertito da un raster (GRID) (strumento raster a poligono).

  • Ci sono ca. 180.000 poligoni.
  • La tabella degli attributi contiene un campo [grid_code] che devo conservare.
  • Se uno o più poligoni sono contigui con gli angoli che toccano E hanno lo stesso valore [grid_code], allora vorrei raggrupparli (fondamentalmente una dissolvenza) in un poligono (record).
  • Quindi ho bisogno di calcolare l'area del poligono raggruppato.

Utilizzando lo strumento Seleziona per posizione, sono in grado di selezionare correttamente i poligoni che devo raggruppare, ma come posso quindi convertirli in UN poligono, conservando il [grid_code]?


3
Hai considerato di eseguire il comando Gruppo di regioni prima di convertire i raster in poligoni?
Kirk Kuykendall,

1
Kirk ha assolutamente ragione: vuoi fare questo calcolo con la griglia originale, dove sarà veloce ed efficiente, piuttosto che nel formato vettoriale di output, dove sarà lento e doloroso.
whuber

2
Grazie Kirk e Bill. Sì, Region Group è lo strumento giusto. Sfortunatamente, l'utilizzo di Region Group sul mio set di dati di grandi dimensioni causa lo striping orizzontale, un noto errore di Analista spaziale. Queste strisce sono state documentate già nel dicembre 2009, ma ora, usando ArcGIS 10, esistono ancora questi problemi. Puoi leggere tutto al riguardo qui: [link] ( forums.arcgis.com/threads/… ) Il mio lavoro è scrivere l'output dello strumento Region Group su un vecchio stile ArcInfo Workspace come GRID. Questo sembra risolverlo!
MJN

Senza questa soluzione, e dato il bug RegionGroup, dovresti eseguire un calcolo della varietà focale 2x2 per identificare i potenziali angoli (la varietà deve essere 3 o 4) e quindi usarli per creare una tabella di potenziali angoli-a- relazioni angolari tra i poligoni, che potrebbero (notevolmente) semplificare la ricerca di poligoni toccanti l'angolo. Che dolore ...
whuber

Tieni presente che se i poligoni condividono solo un singolo vertice, si introduce un autointersezione e quindi si invalida la geometria.
Jim B,

Risposte:


2

Puoi dissolvere poligoni contigui con valori ID comuni usando lo strumento Dissolve .

  1. Seleziona il campo Codice griglia come "Dissolve_Field (opzionale)"
  2. Nella parte inferiore del modulo dello strumento, seleziona la casella di controllo "Linee non divise (opzionale)".
  3. Crea campo area
  4. Fare clic con il pulsante destro del mouse sul campo dell'area e selezionare Calcola geometria

2

Sono molti poligoni. Vorrei anche trovare una soluzione in formato raster quando la topologia è più facile da gestire. Ma se non vuoi scrivere codice, potresti:

  1. Seleziona un determinato codice di griglia.
  2. buffer quel codice di griglia di una quantità molto piccola (opzione buffer uniti)
  3. bufferizzare il risultato negativamente con lo stesso molto piccolo circa.

Ci sarà un leggero arrotondamento nella geometria.

Per creare un singolo livello, interseca i livelli di codice griglia risultanti e pulisci per rimuovere i poligoni del nastro.


-1

Personalmente, scriverei un codice che scorreva attraverso i poligoni, e controllavo che i 4 spigoli degli angoli di un poligono fossero gli stessi di qualsiasi altro poligono e lo chiamassi ricorsivamente - Riempi inondazione in quanto tale.

Lo faccio con le reti netCDF per creare poligoni appropriatamente simili.

Un'altra opzione sarebbe quella di farlo in modo programmatico alla radice con la griglia.


I commenti sono stati eliminati quando si sono degradati in battibecchi e / o rumori inutili e l'intero set è invalicabile.
Mapperz
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.