Automatically Identify isolated small areas (polygons)

2393
4
03-26-2013 10:05 AM
LucasMation
New Contributor
I´m working on a small area shape-fille (Setores Censitários for Brazil). Using ArcMap 9.2.
I need to identify which small areas (lines in the dbf) correspond to isolated poligons, i.e., polygons that are islands off the coast.   
There are also some small areas which are "multipart" (made from disjoint polygons) and one of the parts is off the coast. I also need to identify those.

See attached image.
Any ideas on how I can solve this?
The file has 320,000 small areas so I need an automated process.

A solutions that I imagined was:
1) dissolve all small areas borders, with the "single part" option. This creates a file with 539 lines (one for continental Brazil and the other 538 for islands of the coast).
the problem is that by doing this I loose the details on the small area code (and I would like to retain tha information for the islands).
(obs: trying to retain that information with dissolve' s {field {statistic type} wont work because, the statistics will be for the group formed by the dissolve_field, and not withing single parts of that.
2) in the dissolved shape-file, add a field  "is_island" indicating 1 for the islands and 0 for the continental part.
3) From the original small area file, do a "spacial join" with the dissolved file, pulling information from the "is_island" field.

I think this could work in principle. but step 3 crashes my ArcMap.

best regards
Lucas

PS: the files I´m using can be downloaded from the Brazilian statistical office here:
http://downloads.ibge.gov.br/downloads_geociencias.htm > malhas digitais > censo_2010 > setores_censitarios > choose "ma.zip" for example (=state of Maranhão)
0 Kudos
4 Replies
markdenil
Regular Contributor II
You could identify the small islands by
1. exploding the multi part polygons
2. Dissolving all the polygons to single part
3. deleting all polygons over a selected threashold (somewhere between the size of the largest island and the smallest part of the mainland.
The physical islands should be left
To identify the multi-part areas with "island(s) and mainland"
do a select by location on the original data set using the islands feature class.
write the selection to a new fc

erase the islands with the new "island(s) and mainland" fc

so you have a fc of just island areas with no mainland part,
and a fc of areas with "island(s) and mainland" parts.
0 Kudos
curtvprice
MVP Esteemed Contributor
I´m working on a small area shape-fille (Setores Censitários for Brazil). Using ArcMap 9.2.
I need to identify which small areas (lines in the dbf) correspond to isolated poligons, i.e., polygons that are islands off the coast.   


If you did a dissolve with the SINGLE_PART option, the islands would definitely be much smaller than any mainland polygons. To erase them from the dataset, you could select all the small polygons and use the Erase tool to delete them from the original feature class.
0 Kudos
LucasMation
New Contributor
Dear mdenil and curtvprice,  thank you your answers.

Mdenil: you solution solution works. Bellow I include the streamlined procedure:

1) Dissolve all small area features with the "single part" option ( create a field that is constant for all features (aux1=1)  and useit as the dissolve_field)
2) In "edit map", manually delete the mainland part. This will create a the "Islands" shapefile.
3) Do a "select by location" based on the original file, selecting the features that "intersect" with the "Islands" shapefile. Now you have a selection of the islands knowing the small area code for each island.
4) Create a field equal to one for the selected features, and zero otherwise.  (I actually did not know how to to that, so I exported the selection as shapefile "island2" and then merged (joined) that to the original file based on the small area code).

Curtvprice: this would not work as there are some mainland small areas that are smaller than the islands.

Once again thank you very much for the help.
regards
Lucas
0 Kudos
markdenil
Regular Contributor II
I anticipated that many of the mainland areas could well be smaller than some of the islands.
You want to dissolve contigious features, so you do not need to use a dissolve field when using Dissolve.

Once you have a selection, you can create a layer, which is basically a spatial table view, of the selection.
calculate all the records in the layer to the 'selected' value:
only the selected records will be in the layer,
and the unseleceted records will not be changed.
0 Kudos