Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have just no clue on this problem. I want one raster to set its values to 0 or NoData based upon another raster noData or 0 values. It's like a reclassify, but between two different raster's. I have a picture here to help illustrate:

Raster Illustration

I have two raster here: one is a depth raster (the one with the reds and has a flow look to it) and the other is a velocity raster (the one with the straight breaks).

I'd like to have the Velocity raster only exist where the Depth raster exists. I think this needs to be done in raster calculator or a clip, but so far I haven't found any way to do this.

Any help would be great, thanks!

share|improve this question
add comment

2 Answers

You can do it easily in QGIS (I know that you use ArcGIS, but it might be useful to know where to use opensource to get the job done). There is a RasterCalc plugin for QGIS that will do exactly what you want. Instruction on installation and usage here. If you want to change values other than 0 - you would like to use RasterCalk.

Also there is default Raster calculator in QGIS (don't mess it with RasterCalc). And you may execute following expression to exchange 0 values (assuming that 0 equals to noData, 1st band of the raster used, raster-1 - noData values source, raster-2 - noData values recipient):

(raster-1@1 != 0) * raster-2@1

Here raster-1@1 != 0 creates a binary mask from the 1st band (@1) of raster-1 where 1 corresponds to non-0 values of the raster, 0 - to 0 values. This mask then is multiplied with 1st band of raster 2, so pixels corresponding to 0 will become 0 and others will remain unchanged.

share|improve this answer
    
That sounds like a good solution, but I need to keep the work in ArcGIS. –  Cody Brown Aug 31 '12 at 12:37
add comment
up vote 0 down vote accepted

Figured this one out. It's the Spatial Analyst tool: Set Null

arcpy.SetNull_sa(DepthRaster,VelocityRaster,OutputLovation,"Value = 0")

The last variable also sets any values of 0 to null in the velocity raster. Great little tool!

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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