From f09f2ee0dbfe1674c8b821cdf20e5d00bc5a2e59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Thu, 11 Feb 2021 21:25:50 -0500 Subject: [PATCH 01/12] =?UTF-8?q?=E2=9E=95=20add=20SignedDistanceFields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Project.toml b/Project.toml index 8078202..7de6c41 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.0.1" [deps] NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +SignedDistanceFields = "73760f76-fbc4-59ce-8f25-708e95d2df96" [compat] NaNMath = "0.3" From af4a7677482216db909382e01118e1f78ad01952 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Thu, 11 Feb 2021 21:40:12 -0500 Subject: [PATCH 02/12] Distance gradient --- Project.toml | 1 - docs/src/gallery.md | 6 ++++++ docs/src/index.md | 1 + src/NeutralLandscapes.jl | 3 +++ src/algorithms/distancegradient.jl | 15 +++++++++++++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/algorithms/distancegradient.jl diff --git a/Project.toml b/Project.toml index 7de6c41..8078202 100644 --- a/Project.toml +++ b/Project.toml @@ -6,7 +6,6 @@ version = "0.0.1" [deps] NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" -SignedDistanceFields = "73760f76-fbc4-59ce-8f25-708e95d2df96" [compat] NaNMath = "0.3" diff --git a/docs/src/gallery.md b/docs/src/gallery.md index bb6804d..223245e 100644 --- a/docs/src/gallery.md +++ b/docs/src/gallery.md @@ -25,4 +25,10 @@ heatmap(rand(EdgeGradient(), (45, 45))) ```@example gallery heatmap(rand(WaveSurface(), (45, 45))) +``` + +## Distance gradient + +```@example gallery +heatmap(rand(DistanceGradient(), (45, 45))) ``` \ No newline at end of file diff --git a/docs/src/index.md b/docs/src/index.md index 078b7d5..19e153d 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -10,6 +10,7 @@ NoGradient PlanarGradient EdgeGradient WaveSurface +DistanceGradient ``` ## Landscape generating function diff --git a/src/NeutralLandscapes.jl b/src/NeutralLandscapes.jl index 2bb94f6..1fa6910 100644 --- a/src/NeutralLandscapes.jl +++ b/src/NeutralLandscapes.jl @@ -21,4 +21,7 @@ export EdgeGradient include(joinpath("algorithms", "wavesurface.jl")) export WaveSurface +include(joinpath("algorithms", "distancegradient.jl")) +export DistanceGradient + end # module diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl new file mode 100644 index 0000000..b8fbf70 --- /dev/null +++ b/src/algorithms/distancegradient.jl @@ -0,0 +1,15 @@ +""" + RectangularCluster + +Fills the landscape with rectangles containing a random value. The size of each +rectangle/patch is between `minimum` and `maximum` (the two can be equal for a +fixed size rectangle). +""" +struct DistanceGradient <: NeutralLandscapeMaker + sources::Integer +end + +function _landscape!(mat, alg::RectangularCluster) + mat .= Inf # 🎃 + return mat +end From 74d1b19422eef257e01debb221dffa3a2da60195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 09:30:22 -0500 Subject: [PATCH 03/12] =?UTF-8?q?=F0=9F=9A=A7=20code=20for=20NN=20outside?= =?UTF-8?q?=20the=20function?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project.toml | 1 + src/NeutralLandscapes.jl | 2 ++ src/algorithms/distancegradient.jl | 12 ++++++++++++ 3 files changed, 15 insertions(+) diff --git a/Project.toml b/Project.toml index 8078202..422a3af 100644 --- a/Project.toml +++ b/Project.toml @@ -5,6 +5,7 @@ version = "0.0.1" [deps] NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +NearestNeighbors = "b8a86587-4115-5ab1-83bc-aa920d37bbce" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [compat] diff --git a/src/NeutralLandscapes.jl b/src/NeutralLandscapes.jl index 1fa6910..ceb752d 100644 --- a/src/NeutralLandscapes.jl +++ b/src/NeutralLandscapes.jl @@ -3,6 +3,8 @@ module NeutralLandscapes import NaNMath using Random: rand! +using NearestNeighbors + abstract type NeutralLandscapeMaker end export NeutralLandscapeMaker diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index b8fbf70..2574923 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -13,3 +13,15 @@ function _landscape!(mat, alg::RectangularCluster) mat .= Inf # 🎃 return mat end + +S = (1000, 1000) +D = rand(Float64, S) +@time begin + P = vcat(CartesianIndices(D)...) + C = zeros(Float64, (2, length(P))) + C[1,:] .= getindex.(P, 1) + C[2,:] .= getindex.(P, 2) + M = rand(1:prod(S), 100) + T = KDTree(C); + nn(T, C[:,rand(1:size(C, 2), 200)]) +end; \ No newline at end of file From 333c6304f9ecef0ea4e3633b6f59a707afa597c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 09:49:21 -0500 Subject: [PATCH 04/12] =?UTF-8?q?=E2=9C=8B=20attempt=20with=20NN?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/algorithms/distancegradient.jl | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index 2574923..fb4dff1 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -1,27 +1,20 @@ """ - RectangularCluster + DistanceGradient -Fills the landscape with rectangles containing a random value. The size of each -rectangle/patch is between `minimum` and `maximum` (the two can be equal for a -fixed size rectangle). +The `sources` field is the *linear* indices of the matrix, from which the +distance must be calculated. """ struct DistanceGradient <: NeutralLandscapeMaker - sources::Integer + sources::Vector{Integer} end function _landscape!(mat, alg::RectangularCluster) - mat .= Inf # 🎃 + indices = vcat(CartesianIndices(mat)...) + coordinates = zeros(Float64, (2, length(indices))) + coordinates[1,:] .= getindex.(indices, 1) + coordinates[2,:] .= getindex.(indices, 2) + tree = KDTree(coordinates) + guesses = coordinates[:,setdiff(eachindex(mat),alg.sources)] + mat[guesses] .= nn(tree, guesses)[2] return mat end - -S = (1000, 1000) -D = rand(Float64, S) -@time begin - P = vcat(CartesianIndices(D)...) - C = zeros(Float64, (2, length(P))) - C[1,:] .= getindex.(P, 1) - C[2,:] .= getindex.(P, 2) - M = rand(1:prod(S), 100) - T = KDTree(C); - nn(T, C[:,rand(1:size(C, 2), 200)]) -end; \ No newline at end of file From ccda36238c6a971903ac0df0b59421f474fa4970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 09:50:54 -0500 Subject: [PATCH 05/12] set sources to 0 --- src/algorithms/distancegradient.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index fb4dff1..9247bb0 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -16,5 +16,6 @@ function _landscape!(mat, alg::RectangularCluster) tree = KDTree(coordinates) guesses = coordinates[:,setdiff(eachindex(mat),alg.sources)] mat[guesses] .= nn(tree, guesses)[2] + mat[alg.sources] .= 0.0 return mat end From 269781292782c237b0344eb6d3014fc236f17a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 09:57:53 -0500 Subject: [PATCH 06/12] update --- src/NeutralLandscapes.jl | 1 - src/algorithms/distancegradient.jl | 4 +++- src/algorithms/nogradient.jl | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/NeutralLandscapes.jl b/src/NeutralLandscapes.jl index af5fc13..b5ca5d7 100644 --- a/src/NeutralLandscapes.jl +++ b/src/NeutralLandscapes.jl @@ -2,7 +2,6 @@ module NeutralLandscapes import NaNMath using Random: rand! - using NearestNeighbors abstract type NeutralLandscapeMaker end diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index 9247bb0..196e9d1 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -8,7 +8,9 @@ struct DistanceGradient <: NeutralLandscapeMaker sources::Vector{Integer} end -function _landscape!(mat, alg::RectangularCluster) +DistanceGradient() = DistanceGradient([1]) + +function _landscape!(mat, alg::DistanceGradient) indices = vcat(CartesianIndices(mat)...) coordinates = zeros(Float64, (2, length(indices))) coordinates[1,:] .= getindex.(indices, 1) diff --git a/src/algorithms/nogradient.jl b/src/algorithms/nogradient.jl index 07d6e43..66b0e5f 100644 --- a/src/algorithms/nogradient.jl +++ b/src/algorithms/nogradient.jl @@ -6,4 +6,4 @@ This type is used to generate a random landscape with no gradients struct NoGradient <: NeutralLandscapeMaker end -_landscape!(mat, ::NoGradient) where {IT <: Integer} = rand!(mat) +_landscape!(mat, ::NoGradient) = rand!(mat) From 378fe46fb3ded8deb63fc33528c5e9a6f404088a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 10:20:29 -0500 Subject: [PATCH 07/12] =?UTF-8?q?=F0=9F=8E=A8=20gallery?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/src/gallery.md | 4 ++-- src/algorithms/distancegradient.jl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/gallery.md b/docs/src/gallery.md index afd2a4f..fc02b96 100644 --- a/docs/src/gallery.md +++ b/docs/src/gallery.md @@ -30,11 +30,11 @@ heatmap(rand(WaveSurface(), (45, 45))) ## Distance gradient ```@example gallery -heatmap(rand(DistanceGradient(), (45, 45))) +heatmap(rand(DistanceGradient([1,5,50,120]), (45, 45))) ``` ## Rectangular cluster ```@example gallery heatmap(rand(RectangularCluster(), (45, 45))) -``` \ No newline at end of file +``` diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index 196e9d1..cfa7000 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -15,9 +15,9 @@ function _landscape!(mat, alg::DistanceGradient) coordinates = zeros(Float64, (2, length(indices))) coordinates[1,:] .= getindex.(indices, 1) coordinates[2,:] .= getindex.(indices, 2) - tree = KDTree(coordinates) guesses = coordinates[:,setdiff(eachindex(mat),alg.sources)] - mat[guesses] .= nn(tree, guesses)[2] + tree = KDTree(coordinates[:,alg.sources]) + mat[setdiff(eachindex(mat),alg.sources)] .= nn(tree, guesses)[2] mat[alg.sources] .= 0.0 return mat end From 44436bd984a45f4fdbc4007d655dd97e0d1d6b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 10:23:37 -0500 Subject: [PATCH 08/12] logo --- docs/src/assets/logo.png | Bin 57625 -> 24335 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/src/assets/logo.png b/docs/src/assets/logo.png index d2d672cee17d14246c9d4e8b6a1a02830ca4a276..e88da8af81a5bc5c464405cea82d2cc155d315dd 100644 GIT binary patch literal 24335 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 literal 57625 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 From ac91ab6fdb7b9774cbb35814d8fc640c982f1bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 10:24:41 -0500 Subject: [PATCH 09/12] check sources --- src/algorithms/distancegradient.jl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index cfa7000..2aad7f9 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -11,6 +11,8 @@ end DistanceGradient() = DistanceGradient([1]) function _landscape!(mat, alg::DistanceGradient) + @assert maximum(alg.sources) <= length(mat) + @assert minimum(alg.sources) > 0 indices = vcat(CartesianIndices(mat)...) coordinates = zeros(Float64, (2, length(indices))) coordinates[1,:] .= getindex.(indices, 1) From b44b1fded3bfe23e59680570087ee6fd2968b623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 10:31:08 -0500 Subject: [PATCH 10/12] change gallery --- docs/src/gallery.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/src/gallery.md b/docs/src/gallery.md index fc02b96..c9b2166 100644 --- a/docs/src/gallery.md +++ b/docs/src/gallery.md @@ -30,7 +30,8 @@ heatmap(rand(WaveSurface(), (45, 45))) ## Distance gradient ```@example gallery -heatmap(rand(DistanceGradient([1,5,50,120]), (45, 45))) +sources = unique(rand(1:2025, 15)) +heatmap(rand(DistanceGradient(sources), (45, 45))) ``` ## Rectangular cluster From 0904cf2fd562c90d5d9293774d509fe3482a6ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Poisot?= Date: Fri, 12 Feb 2021 10:48:14 -0500 Subject: [PATCH 11/12] better logo ^^ --- docs/src/assets/logo.png | Bin 24335 -> 35008 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/src/assets/logo.png b/docs/src/assets/logo.png index e88da8af81a5bc5c464405cea82d2cc155d315dd..5be659a5c64ef01ccbb494aaa138e5bd94019948 100644 GIT binary patch literal 35008 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 literal 24335 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 From 20bc74f0da03322ee1bb415194d72822c60ec0d6 Mon Sep 17 00:00:00 2001 From: Michael Krabbe Borregaard Date: Sun, 14 Feb 2021 11:17:12 +0100 Subject: [PATCH 12/12] cleaner distance code --- src/algorithms/distancegradient.jl | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/algorithms/distancegradient.jl b/src/algorithms/distancegradient.jl index 2aad7f9..f686d58 100644 --- a/src/algorithms/distancegradient.jl +++ b/src/algorithms/distancegradient.jl @@ -13,13 +13,11 @@ DistanceGradient() = DistanceGradient([1]) function _landscape!(mat, alg::DistanceGradient) @assert maximum(alg.sources) <= length(mat) @assert minimum(alg.sources) > 0 - indices = vcat(CartesianIndices(mat)...) - coordinates = zeros(Float64, (2, length(indices))) - coordinates[1,:] .= getindex.(indices, 1) - coordinates[2,:] .= getindex.(indices, 2) - guesses = coordinates[:,setdiff(eachindex(mat),alg.sources)] + coordinates = Matrix{Float64}(undef, (2, prod(size(mat)))) + for (i, p) in enumerate(Iterators.product(axes(mat)...)) + coordinates[1:2, i] .= p + end tree = KDTree(coordinates[:,alg.sources]) - mat[setdiff(eachindex(mat),alg.sources)] .= nn(tree, guesses)[2] - mat[alg.sources] .= 0.0 + mat[:] .= nn(tree, coordinates)[2] return mat end