Tristan,

if I understand you right you just want to calculate the distances. So no hydro stuff like accumulation flow directions etc.? As well as no diffusion modeling of the pollutants.

Most of the traditional vector based GIS stuff is packed into the rgeos package. So you might calculated the distances along a graph like in the following paste and copy snippet.

cheers Chris



library(rgeos)
library(sp)
# just for visualisation
r <- raster(nrows=6, ncols=7, xmn=0, xmx=7, ymn=0, ymx=6, crs="+proj=utm +units=m")
r[] <- c(1, 0, 1, 0, 1, 0, 1,
         0, 1, 0, 1, 0, 1, 0,
         1, 0, 1, 0, 1, 0, 1,
         0, 1, 0, 1, 0, 1, 0,
         1, 0, 1, 0, 1, 0, 1,
         0, 1, 0, 1, 0, 1, 0)
# river line
line <-SpatialLines(list(Lines(Line(cbind(c(5.5,1.5,4.5),c(1.5,5.5,5.5))), ID="line")))
# points
p1 <-as.data.frame(cbind(4.5,2.5))
p2 <-as.data.frame(cbind(2.5,4.5))
p3 <-as.data.frame(cbind(2.1,4.5))
p4 <-as.data.frame(cbind(3.5,5.5))
p5 <-as.data.frame(cbind(3.5,5.7))
sp::coordinates(p1) <- ~V1+V2
sp::coordinates(p2) <- ~V1+V2
sp::coordinates(p3) <- ~V1+V2
sp::coordinates(p4) <- ~V1+V2
sp::coordinates(p5) <- ~V1+V2
projection(line)<-projection(point)

plot(r)
plot(line,add=TRUE)
plot(p1,add=TRUE)
plot(p2,add=TRUE)
plot(p3,add=TRUE,col="red")
plot(p4,add=TRUE)
plot(p5,add=TRUE,col="red")

# calculate distance along the line
rgeos::gProject(spgeom = line, sppoint = p1)
rgeos::gProject(spgeom = line, sppoint = p2)
rgeos::gProject(spgeom = line, sppoint = p4)

# note if the point is not near the line it is caluclated orthogonal
rgeos::gProject(spgeom = line, sppoint = p3)
rgeos::gProject(spgeom = line, sppoint = p5)



On 25.01.2017 17:31, Romine, Jason wrote:
The gdistance package in R is what you are looking for:

https://cran.r-project.org/web/packages/gdistance/gdistance.pdf

https://cran.r-project.org/web/packages/gdistance/vignettes/gdistance1.pdf

Best,
Jason

On Wed, Jan 25, 2017 at 5:22 AM, Tristan Bourgeois <
tristan.bourge...@gmail.com> wrote:

Hi Mirza,

Thanks for your quick answer.

Actually I don't want to calculate distance between a point and the next
downstream one.
For example, if there are 4 sewage plant on a river and 7 measurment
stations,I want the distance between each sewage plant and each station.
(water pollution dispersion calculation).
So the flow direction is not that important in my case. The difficulty is
to get the distance between a point and another one following the river
polyline.

In your case, you can add a raster layer with elevation values ans extract
the elevation  for each point of your layer.  Then, for each polyline it is
possible to define a flow direction.
Hope it will help you.




2017-01-25 11:57 GMT+01:00 Mirza Cengic <mirzac...@gmail.com>:

Hi Tristan,

I recently had to do something similar (calculating distance to the next
downstream point), and I was not able to find a solution with R that
would
deal with the direction of the flow. Perhaps someone who has deeper
understanding of packages such as iGraph etc. might be able to find a
solution, but I wasn't.
I solved the problem with ArcMap, using HydroTools extension, where you
need to define a geometric network that has a direction, and then the
calculation is pretty straightforward with HydroTools (let me know if you
need more info).
I would prefer to have a scripted solution in an open-source software,
but
this worked for me in any case. If anyone has a better way for solving
this, I would love to see how!

Cheers,
Mirza.



--
Tristan Bourgeois

         [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo




--
Dr Christoph Reudenbach, Philipps-University of Marburg, Faculty of Geography, 
GIS and Environmental Modeling, Deutschhausstr. 10, D-35032 Marburg, fon: 
++49.(0)6421.2824296, fax: ++49.(0)6421.2828950, web: gis-ma.org, giswerk.org, 
moc.environmentalinformatics-marburg.de

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to