[WIP] Use GeometryOpsCore for real #751
CI.yml
on: pull_request
Documentation
9m 59s
Matrix: test
Annotations
3 errors and 18 warnings
Julia 1 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
|
Julia 1.9 - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
|
Julia nightly - ubuntu-latest - x64 - pull_request
Process completed with exit code 1.
|
Julia 1 - ubuntu-latest - x64 - pull_request
Julia depot registries already exist. Skipping restoring of cached registries to avoid potential merge conflicts when updating. Please ensure that `julia-actions/cache` precedes any workflow steps which add registries.
|
Julia 1 - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Julia 1 - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Julia 1.9 - ubuntu-latest - x64 - pull_request
Julia depot registries already exist. Skipping restoring of cached registries to avoid potential merge conflicts when updating. Please ensure that `julia-actions/cache` precedes any workflow steps which add registries.
|
Julia 1.9 - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Julia 1.9 - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Julia nightly - ubuntu-latest - x64 - pull_request
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Julia nightly - ubuntu-latest - x64 - pull_request
The following actions use a deprecated Node.js version and will be forced to run on node20: actions/checkout@v2, actions/cache@4d4ae6ae148a43d0fd1eda1800170683e9882738, pyTooling/Actions/with-post-step@adef08d3bdef092282614f3b683897cefae82ee3, julia-actions/setup-julia@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'GeometryOps.reproject' in src/api.md:59-61
```@autodocs
Modules = [GeometryOps]
```
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:26-31
```@example segmentize
import GeometryOps as GO, GeoInterface as GI
rectangle = GI.Wrappers.Polygon([[(0.0, 50.0), (7.071, 57.07), (0, 64.14), (-7.07, 57.07), (0.0, 50.0)]])
linear = GO.segmentize(rectangle; max_distance = 5)
collect(GI.getpoint(linear))
```
exception =
UndefKeywordError: keyword argument `max_distance` not assigned
Stacktrace:
[1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Int64, threaded::GeometryOpsCore._False)
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172
[2] top-level scope
@ segmentize.md:29
[3] eval
@ ./boot.jl:385 [inlined]
[4] #60
@ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined]
[5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753
[7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[8] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[9] with_logger
@ ./logging.jl:627 [inlined]
[10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:36-40
```@example segmentize
using Proj # required to activate the `GeodesicSegments` method!
geodesic = GO.segmentize(GO.GeodesicSegments(max_distance = 1000), rectangle)
length(GI.getpoint(geodesic) |> collect)
```
exception =
MethodError: no method matching Geodesic(::Tuple{Int64, Int64}, ::Float64)
Closest candidates are:
Geodesic(::T, !Matched::T) where T
@ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:77
Stacktrace:
[1] Geodesic(; semimajor_axis::Tuple{Int64, Int64}, inv_flattening::Float64)
@ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:76
[2] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; threaded::GeometryOpsCore._False)
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:189
[3] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing})
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:186
[4] top-level scope
@ segmentize.md:38
[5] eval
@ ./boot.jl:385 [inlined]
[6] #60
@ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined]
[7] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[8] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753
[9] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[10] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[11] with_logger
@ ./logging.jl:627 [inlined]
[12] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[13] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:45-53
```@example segmentize
using CairoMakie
linear = GO.segmentize(rectangle; max_distance = 0.01)
geodesic = GO.segmentize(GO.GeodesicSegments(; max_distance = 1000), rectangle)
f, a, p = poly(collect(GI.getpoint(linear)); label = "Linear", axis = (; aspect = DataAspect()))
p2 = poly!(collect(GI.getpoint(geodesic)); label = "Geodesic")
axislegend(a; position = :lt)
f
```
exception =
UndefKeywordError: keyword argument `max_distance` not assigned
Stacktrace:
[1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Real, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Float64, threaded::GeometryOpsCore._False)
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172
[2] top-level scope
@ segmentize.md:47
[3] eval
@ ./boot.jl:385 [inlined]
[4] #60
@ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined]
[5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753
[7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[8] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[9] with_logger
@ ./logging.jl:627 [inlined]
[10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'LinearSegments' in `@docs` block in src/source/transformations/segmentize.md:57-60
```@docs
LinearSegments
GeodesicSegments
```
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
duplicate docs found for 'GeodesicSegments' in `@docs` block in src/source/transformations/segmentize.md:57-60
```@docs
LinearSegments
GeodesicSegments
```
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/source/transformations/segmentize.md:80-110
```@example benchmark
# These are initial distances, which yield similar numbers of points
# in the final geometry.
init_lin = 0.01
init_geo = 900
# LibGEOS.jl doesn't offer this function, so we just wrap it ourselves!
function densify(obj::LG.Geometry, tol::Real, context::LG.GEOSContext = LG.get_context(obj))
result = LG.GEOSDensify_r(context, obj, tol)
if result == C_NULL
error("LibGEOS: Error in GEOSDensify")
end
LG.geomFromGEOS(result, context)
end
# now, we get to the actual benchmarking:
for scalefactor in exp10.(LinRange(log10(0.1), log10(10), 5))
lin_dist = init_lin * scalefactor
geo_dist = init_geo * scalefactor
npoints_linear = GI.npoint(GO.segmentize(rectangle; max_distance = lin_dist))
npoints_geodesic = GO.segmentize(GO.GeodesicSegments(; max_distance = geo_dist), rectangle) |> GI.npoint
npoints_libgeos = GI.npoint(densify(lg_rectangle, lin_dist))
segmentize_suite["Linear"][npoints_linear] = @be GO.segmentize(GO.LinearSegments(; max_distance = $lin_dist), $rectangle) seconds=1
segmentize_suite["Geodesic"][npoints_geodesic] = @be GO.segmentize(GO.GeodesicSegments(; max_distance = $geo_dist), $rectangle) seconds=1
segmentize_suite["LibGEOS"][npoints_libgeos] = @be densify($lg_rectangle, $lin_dist) seconds=1
end
plot_trials(segmentize_suite)
```
exception =
UndefKeywordError: keyword argument `max_distance` not assigned
Stacktrace:
[1] segmentize(geom::GeoInterface.Wrappers.Polygon{false, false, Vector{GeoInterface.Wrappers.LinearRing{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}}, Nothing, Nothing}; max_distance::Float64, threaded::GeometryOpsCore._False)
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:172
[2] top-level scope
@ segmentize.md:99
[3] eval
@ ./boot.jl:385 [inlined]
[4] #60
@ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined]
[5] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[6] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753
[7] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[8] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[9] with_logger
@ ./logging.jl:627 [inlined]
[10] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[11] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
|
Documentation:
../../../.julia/packages/Documenter/C1XEF/src/utilities/utilities.jl#L46
failed to run `@example` block in src/tutorials/geodesic_paths.md:5-17
```@example geodesic
import GeometryOps as GO, GeoInterface as GI
using CairoMakie, GeoMakie
IAH = (-95.358421, 29.749907)
AMS = (4.897070, 52.377956)
fig, ga, _cp = lines(GeoMakie.coastlines(); axis = (; type = GeoAxis))
lines!(ga, GO.segmentize(GO.GeodesicSegments(; max_distance = 100_000), GI.LineString([IAH, AMS])); color = Makie.wong_colors()[2])
fig
```
exception =
MethodError: no method matching Geodesic(::Tuple{Int64, Int64}, ::Float64)
Closest candidates are:
Geodesic(::T, !Matched::T) where T
@ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:77
Stacktrace:
[1] Geodesic(; semimajor_axis::Tuple{Int64, Int64}, inv_flattening::Float64)
@ GeometryOpsCore ~/work/GeometryOps.jl/GeometryOps.jl/GeometryOpsCore/src/types.jl:76
[2] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing}; threaded::GeometryOpsCore._False)
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:189
[3] segmentize(method::GeodesicSegments{Proj.geod_geodesic}, geom::GeoInterface.Wrappers.LineString{false, false, Vector{Tuple{Float64, Float64}}, Nothing, Nothing})
@ GeometryOps ~/work/GeometryOps.jl/GeometryOps.jl/src/transformations/segmentize.jl:186
[4] top-level scope
@ geodesic_paths.md:15
[5] eval
@ ./boot.jl:385 [inlined]
[6] #60
@ ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:754 [inlined]
[7] cd(f::Documenter.var"#60#62"{Module, Expr}, dir::String)
@ Base.Filesystem ./file.jl:112
[8] (::Documenter.var"#59#61"{Documenter.Page, Module, Expr})()
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:753
[9] (::IOCapture.var"#5#9"{DataType, Documenter.var"#59#61"{Documenter.Page, Module, Expr}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}, IOContext{Base.PipeEndpoint}})()
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:170
[10] with_logstate(f::Function, logstate::Any)
@ Base.CoreLogging ./logging.jl:515
[11] with_logger
@ ./logging.jl:627 [inlined]
[12] capture(f::Documenter.var"#59#61"{Documenter.Page, Module, Expr}; rethrow::Type, color::Bool, passthrough::Bool, capture_buffer::IOBuffer, io_context::Vector{Any})
@ IOCapture ~/.julia/packages/IOCapture/Y5rEA/src/IOCapture.jl:167
[13] runner(::Type{Documenter.Expanders.ExampleBlocks}, node::MarkdownAST.Node{Nothing}, page::Documenter.Page, doc::Documenter.Document)
@ Documenter ~/.julia/packages/Documenter/C1XEF/src/expander_pipeline.jl:752
|
|
|