3

Is there a way to fill while editing in ArcGIS?

You know similar to the popular paint tool, where an enclosed area is filled with a colour. I'd like to fill an enclosed area (enclosed by poly lines or polygons or both).

I'd like to be able to do this in an edit session, a batch process or tool would not provide the functionality that I am looking for.

Here is an image to better explain the situation:

ArcGIS Fill Example

I need to fill the area between the High Water Mark (the dark blue polyline) and the lake (the blue polygon). I've highlighted the area I need to fill with a red scratch. Now there is a lot of gaps and inaccuracies in the data, so I need to manually check each one as I do it. It takes forever to trace first the watermark and the lake. I don't see why there isn't an ArcGIS editing tool to fill in gaps. If Microsoft can create one anyone can.

  • 2
    Are you wanting to set raster cells within a polygon to the same value? – Barbarossa May 30 '14 at 16:24
  • 1
    @Barbarossa No I am trying to fill the holes with a polygon that I am editing. Right now I am digitizing the holes by tracing either edge of a waterbody polygon and high water mark line. – Cody Brown May 30 '14 at 16:33
  • 1
    @CodyBrown, what are the geometries of the input data? Are they stored in one feature class or two? – Alex Tereshenkov May 30 '14 at 16:49
  • 1
    Are you wanting to expand the lake/shrink the island to the high water line, or create a new polygon/feature class of 'shore zone' from the island and between the existing lake and high water line? There are several ways to approach this that are faster than tracing the boundaries and can be done with a Basic license. By gaps and inaccuracies, do you mean the high water line is not a continuous, closed line (I assume the lake and island must be if they are polygons). Or are we dealing with just a lake polygon with holes in it? – Chris W May 30 '14 at 19:31
  • 1
    Whether they are actually islands or not isn't as important as whether they have geometry as opposed to just being 'holes' in your lake layer. This goes back to what Alex asked, and whether you're working with three layers (lake, land, highwater) or just two (lake, highwater). Based on your info I'll type up an actual answer. – Chris W Jun 2 '14 at 19:13
4

You can use Advanced Editing toolbar with Construct Polygons tool for that (available to ArcGIS for Desktop Standard and ArcGIS for Desktop Advanced only).

enter image description here

On the picture to the right, the selected lines that form a triangle are used for constructing a polygon yet an existing large polygon is taken into account and just two small triangles are created. It is important to make sure the lines are closed, otherwise you cannot generate polygons. In case they don't and you have many features to go through, you might consider using Integrate GP tool to "snap" closely located vertices of lines to form closed geometries.

  • 1
    I don't have the use of ArcGIS Standard or Advanced at my current working location today, but I will try this Monday. It looks promising so thanks! – Cody Brown May 30 '14 at 16:39
  • 1
    Sure. If you are on ArcView, I bet you can do this in arcpy with some crazy processing of geometries as outlined here (resources.arcgis.com/en/help/main/10.2/index.html#//…) for instance when using Geometry object. I am not sure how it looks with licensing, but using tools from Parcel Editor + Topology functionality can also help especially when constructing polygons from shared polygons and such. – Alex Tereshenkov May 30 '14 at 16:43
  • 1
    Parcel tools and checking topology also both require Standard or Advanced. Using a map toplogy is available at Basic and is one way to attack the problem (but not the fastest imho). – Chris W May 30 '14 at 19:41
3

To answer your question, no, there is no 'fill' tool like you're thinking, and it's actually a lot more complicated than it sounds. Those types of tools work on basically 2D raster data and a 'fill by flood' operational concept. That gets more complicated in a vector environment where you have to start considering vertices and not just overlapping lines. Lines crossing doesn't mean they intersect (even in 2D, nevermind 3D) and things have to really be closed or you get a huge increase of processing. Consider a millimeter gap at a corner that flood will escape and start checking every other boundary in the data to see what is 'enclosed'.

Your problem is actually two separate issues. The first is that your high water line is a) a line and not a polygon and b) not a closed line (the gaps you mention). The second is creating that middle polygon for the hazard area. Here's how I would approach this, but there are certainly other ways.

First, we need to get those highwater lines continuous and closed. There are a number of ways to do this, and without seeing a sample of the data to know how badly they're broken up, I can't suggest one over another.

  • You could manually edit vertices on each line, connecting any red node to its neighboring unselected line, and then merge them.
  • You could run Dissolve with a tolerance high enough to connect any gaps.
  • Integrate might work too as Alex suggested.
  • You could also just create a new feature class to work in (to easily keep track of which ones you have or haven't done), load in the high water lines, and use the Trace tool to create a new line following the old one.
  • Depending on your number of records and budget, ET GeoTools has some tools to clean lines like this.
  • You can use Feature to Polygon (see below).

You might even consider posting this issue as a separate question. You'll want to show a good example of how many gaps and what kind of tolerance, possibly provide a data sample. Such a question might end up being a duplicate of this one, but I don't think all possible solutions are presented there as most answers consider it in terms of the original data of contour lines.

Next, once I had the lines continuous and closed, I would convert them to polygons. If you have an Advanced license, you can use Feature to Polygon. Note that tool also has a cluster tolerance, so you could potentially use it to solve both this step and the previous one at the same time. The ET tools also have provisions for this function.

Finally, the polygons just created are the new land. To get the hazard areas, again you have a couple of choices. Union can solve the problem whether you have two or three polygon layers. You'll have to work with the created attributes to select and export out the shapes you want to an individual feature class (read the Union help/how it works pages).

  • Union your new polys and original land polys, you get a new feature class with both shapes separate and non-overlapping.
  • If all you have is lake polys and your new polys, you can check the 'no gaps' option and Union them to create polys that fill the gap between the two.

You could also Erase (Advanced only) or Clip your new polys from your land, with the output being your hazard areas.

Any way you do this, create new feature classes with your GP tool outputs or work on copies rather than modify your original data. At some point you may end up with attributes on the wrong set of polys or cutting something you didn't mean to. You just have to think about what attributes and geometry you want where, and make sure you can use what you've got with some tool to get the right combination in the end. For example the results of erasing hazard from land vs the other way around. Or perhaps you want land preserved as it is and the hazard areas will just overlap it as a zone/overlay feature.

2

A (temporary) Map Topology created in an edit session is the easiest way to accomplish the editing you have to perform. In the series of images below, I mocked up the lake boundary and high-water level example.

In image A I have the "before" image where the lake and HWL have little or no common boundary. Hopefully this image is close enough to get the flavor for the edit I'm about to perform.

Image A

In image B I first created a Map topology then I turn on the "Align edge" tool.

Image B

Two clicks later (one pick on source Lake edge, one pick on the High Water line) the lake "snaps" to the High Water line as shown in image C.

Image C

(Now here's a trick...) Image D shows some real rough vertex edits with regular edit snapping to make the lake roughly follow the High Water line just as a star shape. This is needed to get the "Align Edge" topology tool to work right in the next image.

Image D

Of course, image E completes the edits when the Align edge has worked its magic all the way around.

Image E

I hope this shows how easy and useful a Map Topology can be for these types of edits and although it doesn't fill an area like a Microsoft Paint program, it does ensure that the lake boundary will be on top of the high water line where it is digitized.

  • This is a good tool (align) I'll have to try out some time. However the approach won't work here based on the criteria (in question comment) of creating a new polygon of the hazard area. If the goal were to expand the lake edge and/or shrink the island to the hazard line, it would be perfect. – Chris W Jun 3 '14 at 21:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.