[GRASS-user] Re: how to only fill small sinks with r.fill.dir
Saber Razmjooei
razmjooeis at faunalia.co.uk
Tue Apr 26 14:51:05 EDT 2011
You probably need a full 2D hydraulic model to do work based on water
level gradient.
Maybe something like like ANUGA:
http://sourceforge.net/projects/anuga/
On Tue, 2011-04-26 at 11:54 -0600, Bryan Keith wrote:
> Great ideas, thank you. I did something like this:
>
> r.fill.dir input=wl200310_krig_g elevation=wl200310_fill_g
> direction=wl200310_dir_g
> r.mapcalc wl200310diff_g=wl200310_fill_g - wl200310_krig_g
>
> r.mapcalc wl200310diffsel_g = if("wl200310diff_g > 5.0", 0, wl200310diff_g)
> r.mapcalc wl200310sel_g = wl200310diffsel_g + wl200310_krig_g
> r.fill.dir input=wl200310sel_g elevation=wl200310sel_fill_g
> direction=wl200310sel_dir_g
>
> r.flow elevin=wl200310sel_fill_g flout=test_ln
>
> I think my problem is now with r.flow. I would like to see flows
> continue through the filled sink and out the other end (as if it were
> a lake), but that doesn't happen. I don't think it can happen with
> r.flow because r.flow encounters a flat area.
>
> Not sure what to try next. This was a problem even before messing
> around with the sink tolerance.
>
> Bryan
>
> On Tue, Apr 26, 2011 at 10:31, Saber <razmjooeis at faunalia.co.uk> wrote:
> > Sorry...I thought the sinks are as null values.
> > Ignore my previous email.
> > I can't think of anything apart from improving your DEM to get rid of the
> > artifacts.
> > One way will be to get the initial result from the r.fill.dir. Identify
> > the areas where the depth is more than say 10 metre (r.nulls
> > map=initial_result setnull 0-9.99)
> >
> > You can then add the new depth raster to the DEM to create the "filled
> > hole". (first r.mask to match initial_result and then r.mapcalc
> > filled_holes=initial_result+DEM)
> > Then remove the mast and r.patch
> > r.patch input=filled_holes,DEM output=patched_DEM
> >
> > You can then use the patched_DEM for r.fill.dir
> >
> > Hope that helps.
> >
> >
> >
> >> Hmmm, I'm not following all your steps, but I don't want to manually
> >> identify valid sinks vs. invalid sinks. I have quite a lot of
> >> surfaces to process, and I'm happy to fill all sinks except those
> >> deeper than 10m.
> >>
> >> On Tue, Apr 26, 2011 at 10:04, Saber <razmjooeis at faunalia.co.uk> wrote:
> >>> Here is a (not a very quick) solution I can think of:
> >>>
> >>> 1- Create an inverse mask
> >>> 2- convert the mask to vector (r.to.vect)
> >>> 3- clean the vector file to get rid of the areas not required (v.clean)
> >>> 4- convert the vector back to raster (v.to.rast)
> >>> 5- Use the new raster as a mask for filling holes (probably you need
> >>> step
> >>> 4.5 to slightly buffer the raster)
> >>>
> >>> Hope that helps
> >>>
> >>>
> >>>> Any ideas on this?
> >>>>
> >>>> Bryan
> >>>>
> >>>> On Mon, Apr 18, 2011 at 14:49, Bryan Keith <bkeith at itascadenver.com>
> >>>> wrote:
> >>>>> Hello,
> >>>>>
> >>>>> Is there a way to only fill sinks in a DEM if they are smaller than a
> >>>>> certain tolerance? I have a couple areas of internal drainage that
> >>>>> really are correct (and quite large), and I have a quite few small
> >>>>> sinks that are incorrect and artifacts of the interpolation. Any
> >>>>> ideas how to this? r.fill.dir attempt to fill all the sinks.
> >>>>>
> >>>>> I'm trying to improve the results from r.flow Too many tracks end in
> >>>>> small holes where I'd like them to continue downstream. Thanks.
> >>>>>
> >>>>> Bryan
> >>>>>
> >>>> _______________________________________________
> >>>> grass-user mailing list
> >>>> grass-user at lists.osgeo.org
> >>>> http://lists.osgeo.org/mailman/listinfo/grass-user
> >>>>
> >>>
> >>>
> >>>
> >>
> >
> >
> >
More information about the grass-user
mailing list