Select to view content in your preferred language

Raster Extraction

1451
3
09-03-2010 09:57 AM
JamieJohnston-Stewart
Deactivated User
Hi,

I have been trying to extract portions of my DEM with water body features. Ideally, I should be using the extract by polygon tool and setting the extraction area to outside. However, because I have complex polygons as water bodies, for me to input the XY coordinates of the vertices of each polygon would take me days as I have over 41,000 points.
I can't use the extract by mask because it doesn't allow you to set the extraction area.

Is there a quick way to erase complex polygon features out of a DEM?

Thanks for your help.

Jamie
0 Kudos
3 Replies
EricRice
Esri Regular Contributor
Jamie,

Do you have access to ArcGIS 10?  Its pretty straight forward in that version.  Can I ask why you want nodata pixels where your lakes are?  You want to keep everything but the lakes, right?  This can probably be done with map algebra with just a Con and SetNull statement if you're not using ArcGIS 10.

Regards,
Eric
0 Kudos
JamieJohnston-Stewart
Deactivated User
Hi Eric,

I'm using 9.3.1. Yes, I'm looking to keep everything but the lakes. The reason behind this is that I'm trying to create catchment areas using ArHydro, but the study area is really flat. We're finding that the catchments are going through the lakes and not really taking them into account. I've tried numerous settings with ArcHydro to incorporate sinks, but the catchments are still going straight through the water bodies. My thought was that if I eliminated the water bodies from the DEM altogether, it might produce more favourable results.
What are your thoughts? Would you have any other recommendations?

Thanks,
Jamie
0 Kudos
JeffreyEvans
Frequent Contributor
You solution may yield undesirable results. I would convert my lakes coverage to a raster and create a background value consistent with the extent of my DEM. I would then "burn-in" the lakes and recalculate the catchments.

1) Convert polys to raster.

2) Use a con statement to create a background value. You must first set the window to your dem. This can be done under Spatial Analyst > Options. Then using a CON statement you can create a grid where lakes are 1 and background is 0:
lakes = CON(ISNULL(tmp), 0, 1)  

3) Burn in lakes by subtracting 5m in all areas corresponding to lakes:
dem_new = CON(lakes == 1, (dem - 5), dem)
0 Kudos