Opened 4 years ago
Closed 4 years ago
#2686 closed defect (invalid)
r.hazard.flood error output
Reported by: | zimbogisgeek | Owned by: | |
---|---|---|---|
Priority: | normal | Milestone: | 7.0.1 |
Component: | Addons | Version: | svn-releasebranch70 |
Keywords: | r.hazard.flood | Cc: | madi |
CPU: | All | Platform: | All |
Description
Running r.hazard.flood produces an erroneous map mainly because in the r.hazard.py script there is a mistake in calculating the final map. The command that produces the error is
grass.mapcalc("$r_flood_map = $rast1 / $rast1", r_flood_map = r_flood_map, rast1 = 'r_flood_th')
which should be
grass.mapcalc("$r_flood_map = $rast1 / $rast2", r_flood_map = r_flood_map, rast1 = 'r_flood_th', rast2 = 'r_flood')
Change History (7)
comment:1 Changed 4 years ago by
Cc: | madi added |
---|---|
Component: | Python → Addons |
Keywords: | r.hazard.flood added |
comment:2 Changed 4 years ago by
Priority: | critical → normal |
---|
comment:3 follow-up: 4 Changed 4 years ago by
Hi Madi, but the code is dividing the same maps
"$r_flood_map = $rast1 / $rast1"
so it return for every pixel 1, is it the right behavior?
comment:4 follow-up: 5 Changed 4 years ago by
Replying to lucadelu:
Hi Madi, but the code is dividing the same maps
"$r_flood_map = $rast1 / $rast1"so it return for every pixel 1, is it the right behavior?
yes, the expected result is a binary map (yes=1, no=null) Thanks, madi
comment:5 follow-up: 6 Changed 4 years ago by
Replying to madi:
Replying to lucadelu:
Hi Madi, but the code is dividing the same maps
"$r_flood_map = $rast1 / $rast1"so it return for every pixel 1, is it the right behavior?
The behaviour in question comes from r.mapcalc:
yes, the expected result is a binary map (yes=1, no=null)
Here a quick test:
r.mapcalc "result = 1/1" r.univar -g result | grep 'min\|max\|null' null_cells=0 min=1 max=1 r.mapcalc "result2 = 0/0" r.info result2 | grep 'min\|max\|null' | Range of data: min = NULL max = NULL r.mapcalc "result3 = null()/null()" r.info result3 | grep 'min\|max\|null' | Range of data: min = NULL max = NULL
Is this what should happen in r.hazard.flood?
comment:6 Changed 4 years ago by
Replying to neteler:
Replying to madi:
Replying to lucadelu:
Hi Madi, but the code is dividing the same maps
"$r_flood_map = $rast1 / $rast1"so it return for every pixel 1, is it the right behavior?
The behaviour in question comes from r.mapcalc:
yes, the expected result is a binary map (yes=1, no=null)
Here a quick test:
r.mapcalc "result = 1/1" r.univar -g result | grep 'min\|max\|null' null_cells=0 min=1 max=1 r.mapcalc "result2 = 0/0" r.info result2 | grep 'min\|max\|null' | Range of data: min = NULL max = NULL r.mapcalc "result3 = null()/null()" r.info result3 | grep 'min\|max\|null' | Range of data: min = NULL max = NULLIs this what should happen in r.hazard.flood?
Precisely so.
comment:7 Changed 4 years ago by
Resolution: | → invalid |
---|---|
Status: | new → closed |
I double checked the code and unless I can't see the obvious it looks alright to me. Therefore I'm closing this ticket as invalid. Please feel free to reopen it if something looks amiss. However, the expected result of this tool is indeed a binary map.
Hi, thank you for pointing this out, but does this actually produce an erroneous result? could you give an example? Thanks