[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