I would like to visualize different types of areas (e.g. forest, river, industrial areas, ...) according to their proportion within a city using ArcGIS.

My goal is to "fill" my city boundary polygon from south to north just like a sandglass by simply using the size of each type of area. In the end it should somehow look like a stacked area plot "under the influence of gravity" considering the city boundary as in the following sketch:

enter image description here

Is this possible? Any hints?

  • 1
    The answer to nearly every "Is this possible with GIS" question is, "Yes", but first you need to choose a software package, since GIS SE has a "One question per Question" policy, and two GIS packages makes this two questions.
    – Vince
    May 15 '17 at 12:51
  • 1
    Can you edit your question and provide a screenshot or image of what this should look like, "it should somehow look like a stacked area plot "under the influence of gravity""?
    – artwork21
    May 15 '17 at 12:59
  • Thx @Vince and artwork21 for your comments. I added an image and set the focus of my question on ArcGIS. May 15 '17 at 13:14

Played around with this and here's what I got:

Here's a convoluted but "quick and dirty" solution that should get you close:

I attacked this by creating a grid index over the city boundary polygon to serve as features to represent the land use areas. I followed this process:

  1. Use Grid Index Features to create a grid over your city boundary. I took the defaults to get as fine of a grid as possible to boost accuracy.

  2. Add a new field called AREA type double and calculate the area of each grid cell in whichever unit you're using for your work.

  3. Add another new field and calculate the percentage of the shape area that each grid cell covers. Expression: (*area of city boundary/ [AREA]) * 100. This will give you the percent of the total area that each grid cell covers.

  4. Sort the Grid Index Features feature class ascending by PageNumber (default output field from Create Grid Features). Having them sorted is crucial since the grid cells are created sequentially west to east, north to south.

  5. Determine the number of cells that will be used per coverage area. In your example, the industrial areas covered 17% of the total city limits, so I divided 17 by the Percent field created in step 3. In my case, each grid cell covered 0.008758% of the total area, so I divided 17 by 0.008758 to yield a value of 1941.08.

  6. Select the first 1942 pages of the Grid Index feature class. I rounded up from 1941 since there is a remaining area left over. This is why having the grid cells sorted by page number is critical, since your selected features will need to be contiguous.

  7. Start an edit session and merge the selected features. This will give you one feature that covers roughly 17% of the total city area and will be the feature you use to symbolize land use coverage. You could also export the selection to a new FC to merge back with the other coverage classes at the end.

  8. Repeat steps 5-7 for the remaining coverage types.

  9. End your edit session or merge all coverage classes back into one feature if you chose to export your selections, then add a new field and populate it with the name of the coverage class.

  10. Clip the feature class of merged grid cells to the area of the city boundary. Grid index features will overlap the city polygon upon creation, and this will get rid of the "stair steps" along the outer boundary of the city boundary polygon.

  11. Symbolize the clipped coverage class feature class by unique values based on the name of the coverage class.

Like I said, this is a quick and dirty solution and isn't super efficient, but this workflow could certainly consolidated into a model or script tool. The other issue is that the break lines between classes will not necessarily be clean and perfectly horizontal, but I imagine that it may not matter that much at such a large scale. You could definitely clean those breaks up for presentation purposes without sacrificing a tremendous amount of accuracy.

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.