[R-sig-Geo] ordering points into a line

Dewey Dunnington dewey @end|ng |rom dunn|ngton@c@
Wed Jun 5 19:09:41 CEST 2024


Hi Ben,

I had a bit of fun with this [1]...the act of following a shortest path 
and finding the endpoints are sort of related (in that if you follow the 
shortest path setting a maximum distance threshold, eventually you will 
fail to find any more points, and you've found (maybe) and endpoint!).

I hope this is helpful!

Cheers,

-dewey

[1] https://gist.github.com/paleolimbot/0be47836de5008f308959923dac02c5b

On 2024-06-05 13:20, Ben Tupper wrote:
> Hello,
> 
> NOAA's Ocean Prediction Center (https://ocean.weather.gov/) serves the
> US Navy's almost-daily estimate of the locations of the north and
> south walls of the Gulf Stream in the North Atlantic
> (https://ocean.weather.gov/gulf_stream_latest.txt). The also serve an
> archive via a FTP server
> (https://ftp.opc.ncep.noaa.gov/grids/experimental/GStream) for
> downloads by year.  The dataset provides manually estimated of
> locations along the so-called north and south walls of the Gulf
> Stream, although there is ongoing research and debate about the best
> way to define the Gulf Stream. My colleagues and I have been slowly
> pulling together a small package to make working with this data easier
> (https://github.com/BigelowLab/gstream).
> 
> This dataset provides an interesting spatial puzzle because the points
> for a specific wall on a given date are not ordered.  Assuming that
> the points could be ordered into LINESTRING, the problem is how to do
> it.
> 
> We probably can use sfnetworks package
> (https://luukvdmeer.github.io/sfnetworks/) extensive tools to follow a
> shortest path... but first one of the two endpoints must be found.
> Eeek! How does one do that programmatically?  The plot attached shows
> the points for the north wall on 2020-12-19.  Also shown are the first
> and last points in the record which are clearly not the endpoints of a
> path we might assemble from the points.
> 
> #### START
> suppressPackageStartupMessages({
>   library(sf)
>   library(readr)
>   library(dplyr)
> })
> 
> 
> file = 
> "https://raw.githubusercontent.com/BigelowLab/gstream/main/inst/examples/2020-12-19-north.csv"
> x = readr::read_csv(file, col_types = "nn") |>
>   sf::st_as_sf(coords = c("X", "Y"), crs = 4326) |>
>   sf::st_as_sf()
> 
> 
> p = sf::st_cast(dplyr::select(x, attr(x, "sf_column")), "POINT")
> plot(sf::st_geometry(x), type = "b", axes = TRUE, reset = FALSE)
> plot(dplyr::slice(p,1), col = "orange", add = TRUE, pch = 2, cex = 1.5)
> plot(dplyr::slice(p,nrow(x)), col = "orange", add = TRUE, pch = 6, cex 
> = 1.5)
> ### END
> 
> --
> 
> Ben Tupper he/him
> 
> Research Associate
> 
> Bigelow Laboratory for Ocean Sciences
> 
> –––––––––––––––––––––––––––––––––––––––––––––––––––
> 
> E  btupper using bigelow.org
> 
> O  207-315-2567
> 
> –––––––––––––––––––––––––––––––––––––––––––––––––––
> 
> Bold Science for Our Blue Planet  |  BIGELOW.ORG
> 
> 60 BIGELOW DRIVE  |  EAST BOOTHBAY, MAINE 04544 USA
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo



More information about the R-sig-Geo mailing list