Come dissolvere i poligoni sovrapposti?


10

Ho una domanda sulla dissoluzione delle funzioni poligonali in ArcGIS 9.3. Ho solo la licenza bare-bones e una conoscenza estremamente semplice di VB.

Ho un grande file di forma con circa 4500 poligoni e voglio sapere se c'è comunque modo di dissolvere quelli che si sovrappongono? Fondamentalmente voglio trasformare questo livello in uno shapefile che contiene aree separate, quindi dove un poligono è da solo rimarrà ma dove più poligoni si sovrappongono si dissolvono in 1, con ciascuna area separata con il proprio set di attributi. Lo shapefile cambia abbastanza frequentemente e fino ad ora li ho esaminati tutti e ho dissolto manualmente le aree sovrapposte usando lo strumento dell'editor, ma sono sicuro che c'è un modo molto più veloce di farlo!

Qualche idea su come questo potrebbe essere raggiunto?


Ho provato con lo strumento dissolve e unendo la tabella degli attributi esportati e questo funziona perfettamente! Pensavo che lo strumento dissolvenza funzionasse solo sugli attributi e non sulla posizione spaziale, quindi è estremamente utile saperlo. Anche il codice ModelBuilder è


Grandi risposte. Brad Nesom, come si ottiene il valore originale della tabella degli attributi nel file di forma disciolto?
Gunnar,

Ho bisogno di quello che hai fatto, ma quando eseguo lo strumento dissolve si fondono tutte le sue caratteristiche nella mia forma, quindi non funziona. Come l'hai fatto funzionare?
Federico Gómez,

Risposte:


13

Potrei mancare qualcosa, ma lo strumento Dissolve di base (da qualche parte nella casella degli strumenti di gestione dei dati) farà questo per te? Non c'è bisogno di pasticciare con nessun codice come nella risposta di artwork21. Basta aprire lo strumento dissolvenza, selezionare la classe di entità geografiche, non selezionare alcun campo su cui dissolversi, quindi deselezionare "Crea poligoni in più parti", altrimenti tutti i poli diventeranno un grande poli in più parti.

Non ho Arc davanti a me in questo momento, ma se sto leggendo correttamente la tua domanda, l'ho fatto prima di usare questo metodo. L'unica preoccupazione qui è gli attributi nella tabella. Conosci i dati, quindi dovrai scegliere come combinare ciascun campo nella parte Campi statistici dello strumento.

Se questo processo viene eseguito molto frequentemente o desideri che venga eseguito automaticamente, esegui questa operazione con Model Builder ed esportalo in uno script, ma questo strumento dovrebbe richiedere 10 secondi per essere completato.


14

@Tom Parker - MWrenn è corretto.
Hai la possibilità di selezionare un attobute su cui dissolversi (questo dissolverà un attributo) o nessun attributo (questo dissolverà spazialmente).

scegli le statistiche e tutti gli attributi che desideri trasferire. (questo non funzionerà abbastanza come vuoi tu).

opzioni

Prima di fare lo scioglimento. creare un nuovo campo e calcolare il FID in esso.
Quindi esporta un dbf dei tuoi attributi e puoi (in qualche modo unirli di nuovo con i poligoni in seguito).

Se hai bisogno di aiuto, fammelo sapere e posterò altre schermate o troverò aiuto sul centro risorse di arcgis.com.

Se noti nella schermata seguente il nome è lo stesso in tutti i poligoni (9.3.1 non sembra dissolversi correttamente da arcmap). Provalo da arccatalog.

dopo si dissolvono

Forse qualcun altro avrà un metodo migliore.

L'unico altro modo a cui riesco a pensare è selezionare per posizione (poligoni che si intersecano).
Esportali in un file separato e poi dissolvili.
Quindi, dopo aver sciolto ogni file, è possibile utilizzare i livelli di unione gratuiti (in et-geo-wizards)


4

È possibile creare un modello in Model Builder ed esportare lo script, quindi copiare e incollare quello script in un UIButtonControl in ArcMap vba. Vedi l'esempio di script qui sotto.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 
  "MULTI_PART", "DISSOLVE_LINES"

End Sub
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.