Riparare migliaia di piccoli poligoni sovrapposti?


21

Sto usando ArcMap 10.3.

Ho uno strato di diversi tipi di uso del suolo. Ho scoperto che molti poligoni si sovrappongono e di conseguenza lo stesso poligono ha due diversi tipi di uso del suolo.

Usando la risposta di @ radouxju , ho creato una topologia per il livello di uso del suolo (con la regola da non sovrapporre). Quindi, ho usato l'unione per correggere i grandi poligoni sovrapposti.

Tuttavia, ho migliaia di piccoli poligoni sovrapposti. Posso risolverli tutti manualmente, il che richiederà tempo.

Esiste un modo più rapido per correggere tutti questi errori?

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Ho aggiornato la mappa per mostrare tutti i tipi di uso del suolo. I poligoni si sovrappongono; non scaglie.


2
Lo strumento integrato funzionerebbe per te?
Fezter

@Fezter Non la penso così perché i loro poligoni non hanno la stessa area e non posso usare la stessa tolleranza XY per l'intero livello.
lucido il

1
@aelwan: qual è il tuo obiettivo con questi dati? Stai creando questi dati per essere utilizzati da altri (come se tu fossi il creatore dei dati)? O stai cercando di "ripulirlo" per l'utilizzo in una mappa o analisi? Il motivo per cui lo chiedo è che questi dati sembrano dati inutili. È al di là dell'analisi GIS, deve essere completamente ridefinito e fare in modo che qualcuno con autorità (conoscenza del lavoro) prenda decisioni informate su dove dovrebbero essere questi confini. Altrimenti, lascerei i dati così come sono.
alexGIS,

@alexGIS Sono pienamente d'accordo con te su quanto siano cattivi i dati. Tuttavia, questi sono i dati MIGLIORI che ho ricevuto. Sto cercando di pulire per l'analisi.
lucido

Risposte:


6

La preoccupazione sollevata da @Adam Cara è molto valida. Tuttavia, quando ho osservato l'autointersezione, mi è sembrato che la maggior parte di essi fossero o pezzi sottili sul confine tra 2 poligoni enormi o pezzi / isole disconnesse di un grande poligono seduto all'interno di un altro. In questo caso, la cancellazione di sovrapposizioni e l'assegnazione di dissoluzioni si sovrappone all'attributo del vicino più vicino (a seconda dell'evento che si verifica per primo) può funzionare.

Processi:

arcpy.Intersect_analysis("Landuse2b #","D:/Scratch/mpart.shp","ALL","#","INPUT")
arcpy.MultipartToSinglepart_management("mpart","D:/Scratch/spart.shp")
arcpy.Dissolve_management("spart","D:/Scratch/dissolved_1.shp","#","#","SINGLE_PART","DISSOLVE_LINES")
arcpy.Erase_analysis("Landuse2b","dissolved_1","D:/Scratch/erased.shp","#")
arcpy.DeleteField_management("spart","FID_Landus;OBJECTID;Lnduse2013;Shape_Leng;Shape_Area")
arcpy.SpatialJoin_analysis("spart","erased","D:/Scratch/sj_1.shp","JOIN_ONE_TO_ONE","KEEP_ALL"…..)
arcpy.Merge_management("sj;erased","D:/Scratch/merge_1.shp"….)
arcpy.Dissolve_management("merge_1","D:/Scratch/dissolved.shp","Lnduse2013","#","SINGLE_PART","DISSOLVE_LINES")

Test:

arcpy.Intersect_analysis("dissolved #","D:/Scratch/test.shp","ALL","#","INPUT")

Messaggio:

  • In esecuzione: Interseca "dissolved #" D: \ Scratch \ test.shp ALL # INPUT
  • Ora di inizio: venerdì 22 aprile 10:16:07 2016
  • Funzioni di lettura ...
  • Funzionalità di cracking ...
  • Funzioni di assemblaggio ...
  • AVVISO 000117: Avviso di uscita vuota generata.
  • Riuscito a venerdì 22 aprile 10:16:09 2016 (tempo trascorso: 2.34 secondi)

Nota questo messaggio significa che non ci sono autointersezioni nell'output di Dissolve finale

Risultato:

https://drive.google.com/file/d/0B6B33FrGNitPT0FvbVdHQm0xMDg/view?usp=sharing


1
Questa soluzione lo rende "pulito", ma non "corretto". Se OP non teme che un'area che si sovrappone a "Dairy" e "Sheep / Beef" sia ora ricategorizzata in "Buildup / Parks / Others" e altre simili categorizzazioni arbitrarie che vedo confrontando l'input con l'output, allora questa soluzione funziona. Detto questo, è un flusso di lavoro elegante, un bel lavoro.
alexGIS,

1
Con tali dati nessuno sa cosa sia corretto
FelixIP

7

Se i tuoi poligoni sono frammenti, il comando di eliminazione funziona bene per unirli nel poligono dell'area più grande o nel bordo più lungo.

Se i poligoni sono sovrapposti, potrebbe esserci un modo più semplice, ma selezionerei le sovrapposizioni su un livello separato, per poi unirle di nuovo, creando le schegge e usando il comando Elimina.


Grazie per il tuo tempo e aiuto. I miei poligoni si sovrappongono. Per seguire la tua risposta, come posso selezionare le sovrapposizioni su un livello separato? Le sovrapposizioni vengono visualizzate come errori di area dopo che ho creato la topologia.
lucido l'

Basta eseguire Intersect ( resources.arcgis.com/EN/HELP/MAIN/10.1/index.html#//… ) sul livello poligoni. Il risultato di Intersect saranno tutte le sovrapposizioni in questo livello.
iRfUn

@iRfAn Grazie ho eseguito l'intersezione e ho ottenuto la sovrapposizione.
lucido il

@Bryan Waller Ho provato a seguire ciò che mi hai suggerito: ho selezionato le sovrapposizioni su un livello separato usando "interseca"; poi ricollegali in "MA NON SONO STATI CREATI SILVER". Dopo aver usato il comando delete, riesco ancora a trovare lo stesso poligono con due diversi tipi di uso del suolo. Qualsiasi aiuto sarebbe apprezzato. Puoi trovare lo strato di uso del suolo qui goo.gl/0aE3wq
lucido il

6
  1. Seleziona una piccola area e converti in due file di forma per vedere se questo processo sta funzionando.
  2. Crea un nuovo campo chiamato test (numero) in s1 e s2.
  3. Interseca due file di forme S1 e S2.
  4. Le aree sovrapposte verranno identificate in un file separato, ad esempio denominato Common1 (Area tratteggiata nella figura).
  5. Calcola il test sul campo come 1 in Comune.
  6. Unione S1 e comune
  7. Selezionare 1 inserisci qui la descrizione dell'immaginedal campo di prova ed eliminare l'area tratteggiata.
  8. Ora Unisci s2 e comuni. Il comando Cancella può essere usato per cancellare l'area comune.

@Shampe Grazie per il tuo aiuto. Le sovrapposizioni che ho sono nello stesso file di forma non due file di forma.
lucido il

6

Hai mai pensato di suddividere le singole classi di uso del territorio in file di forma separati per lavorare con loro in quel modo. Ho pensato per la prima volta di eseguire un incrocio, ma ho visto che non è riuscito sopra. Se hai sette shapefile separati, potresti essere in grado di manipolarli più facilmente.

La domanda principale che ho è se ci sono sovrapposizioni, hai una gerarchia per quale classe vince e dovrebbe mostrarsi alla fine? Ad esempio: se Cropping e Dairy si sovrappongono, quale tieni? Una volta stabilita questa gerarchia, interseca 2 classi alla volta, iniziando dal più basso e finendo con il più alto. Se l'output è vuoto su un determinato incrocio, significa che non si intersecano.


2
Si pone qui il problema più importante: come classificare le sovrapposizioni? Rendere i dati "accurati" non significa che siano "corretti".
alexGIS,

@alexGIS Di nuovo, sono d'accordo con te. Tuttavia, dato l'obiettivo di questa analisi e la piccola area dei poligoni sovrapposti dei dati, la categoria della sovrapposizione non è l'obiettivo principale rispetto al fissare le sovrapposizioni.
lucido

Questa potrebbe essere una buona idea per un altro motivo. Le sovrapposizioni potrebbero rappresentare cambiamenti nei confini dei campi e ritagli nel tempo.
fino al

5

Dopo aver creato una topologia, sono stati identificati gli errori.

Nell'elenco che mostra gli errori, è possibile selezionare tutti gli errori dello stesso tipo, fare clic con il tasto destro su questo elenco e scegliere una "correzione". Nel tuo caso, la correzione sarebbe "crea funzionalità", che creerà un nuovo poligono se due poligoni si sovrappongono. Questo è il primo passo (nota che puoi ottenere un risultato simile usando lo strumento unione con il tuo livello di uso del suolo come input singolo, quindi lo strumento multipart in single part (ma poi le sovrapposizioni continueranno a sovrapporsi, quindi devi eliminare uno dei il valore dell'attributo) oppure converti il ​​tuo poligono in linee e poi di nuovo in poligono (ma poi perdi l'attributo, hai bisogno di un unione spaziale per recuperare gli attributi))

Il secondo passo consisterebbe nel rimuovere i piccoli poligoni. Il problema è che non hai davvero una regola per decidere quale valore di attributo desideri mantenere. Il mio strumento preferito è quindi lo strumento Elimina , in cui è possibile scegliere in quale poligono confinante verranno uniti i piccoli poligoni (in base al limite condiviso più grande o all'area più grande)

Ultima osservazione: se hai una regola per la classe di uso del suolo prioritario, seleziona iterativamente i piccoli poligoni (che non hanno un'etichetta) per posizione per assegnare ogni classe di uso del suolo diminuendo l'ordine di priorità e usa il calcolatore di campo per assegnare il loro etichetta.


4

Mentre sono d'accordo con gli altri sul fatto che siano poligoni sovrapposti o scheggiati, da quello che vedo qui con questa immagine stai mostrando a tutti. Ti consiglierei di cambiare i colori della tua simbologia per l'uso del suolo. In questo modo puoi vedere quale dovrebbe essere o l'altro. L'unico colore che ci hai mostrato in rosa è davvero difficile da leggere e potrebbe richiedere molto tempo.

Nella seconda parte, selezionerei tutti i poligoni sovrapposti o scheggiati ed esportarli in un nuovo shapefile. In questo modo è possibile identificarli quali sono nell'uso del suolo.


Grazie per l'aiuto. Ho aggiornato la mappa per mostrare i colori per tutti gli usi del suolo.
lucido il

4

Una possibile soluzione, se disponi di Analista spaziale o Analista 3D, che converti la terra usa i poligoni in un'immagine raster usando lo strumento (Conversione da poligono a raster) per garantire che non escano poligoni sovrapposti, poiché non puoi ottenere pixel sovrapposti. Quindi, converti il ​​raster in poligoni usando lo strumento (Raster in Poligono), se hai ancora bisogno in formato vettoriale. In questo caso, scegli dimensioni delle celle ad alta risoluzione (dimensioni dettagliate delle celle) per ottenere poligoni di buona qualità, ma devi considerare la memoria. Potrebbe essere necessario provarlo più volte modificando le dimensioni della cella fino a quando non si sarà soddisfatti dei risultati. Potrebbe essere necessario attenuare i poligoni di output, se non è perfetto, ma dipende se si dispone almeno della Licenza standard per ArcGIS Desktop. So che non è un compito facile, ma può risolvere il tuo problema.


4

Controlla i pochi vuoti o le poche sovrapposizioni tra i poligoni per trovare la tolleranza e usa lo strumento Integrato di Arctoolbox con i valori di tolleranza corretti.

inserisci qui la descrizione dell'immagine

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.