├── docs ├── Project.toml ├── src │ └── index.md ├── make.jl └── Manifest.toml ├── src └── PointCloudFilters.jl ├── .gitignore ├── test └── runtests.jl ├── .cirrus.yml ├── Project.toml ├── .travis.yml ├── .appveyor.yml ├── LICENSE └── README.md /docs/Project.toml: -------------------------------------------------------------------------------- 1 | [deps] 2 | Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" 3 | -------------------------------------------------------------------------------- /src/PointCloudFilters.jl: -------------------------------------------------------------------------------- 1 | module PointCloudFilters 2 | 3 | greet() = print("Hello World!") 4 | 5 | end # module 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.jl.*.cov 2 | *.jl.cov 3 | *.jl.mem 4 | .DS_Store 5 | /Manifest.toml 6 | /dev/ 7 | /docs/build/ 8 | /docs/site/ 9 | -------------------------------------------------------------------------------- /docs/src/index.md: -------------------------------------------------------------------------------- 1 | # PointCloudFilters.jl 2 | 3 | ```@index 4 | ``` 5 | 6 | ```@autodocs 7 | Modules = [PointCloudFilters] 8 | ``` 9 | -------------------------------------------------------------------------------- /test/runtests.jl: -------------------------------------------------------------------------------- 1 | using PointCloudFilters 2 | using Test 3 | 4 | @testset "PointCloudFilters.jl" begin 5 | # Write your own tests here. 6 | end 7 | -------------------------------------------------------------------------------- /.cirrus.yml: -------------------------------------------------------------------------------- 1 | freebsd_instance: 2 | image: freebsd-12-0-release-amd64 3 | task: 4 | name: FreeBSD 5 | env: 6 | JULIA_VERSION: 1.3 7 | install_script: 8 | - sh -c "$(fetch https://raw.githubusercontent.com/ararslan/CirrusCI.jl/master/bin/install.sh -o -)" 9 | build_script: 10 | - cirrusjl build 11 | test_script: 12 | - cirrusjl test 13 | coverage_script: 14 | - cirrusjl coverage codecov 15 | -------------------------------------------------------------------------------- /Project.toml: -------------------------------------------------------------------------------- 1 | name = "PointCloudFilters" 2 | uuid = "ce1cfaff-6c62-4fc1-9e13-ab1d2535aa4b" 3 | authors = ["Maarten Pronk", "Deltares"] 4 | version = "0.1.0" 5 | 6 | [deps] 7 | ImageFiltering = "6a3955dd-da59-5b1f-98d4-e7296123deb5" 8 | Parameters = "d96e819e-fc66-5662-9728-84c9c7592b0a" 9 | StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" 10 | 11 | [compat] 12 | julia = "1.3" 13 | 14 | [extras] 15 | Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 16 | 17 | [targets] 18 | test = ["Test"] 19 | -------------------------------------------------------------------------------- /docs/make.jl: -------------------------------------------------------------------------------- 1 | using Documenter, PointCloudFilters 2 | 3 | makedocs(; 4 | modules=[PointCloudFilters], 5 | format=Documenter.HTML(), 6 | pages=[ 7 | "Home" => "index.md", 8 | ], 9 | repo="https://github.com/evetion/PointCloudFilters.jl/blob/{commit}{path}#L{line}", 10 | sitename="PointCloudFilters.jl", 11 | authors="Maarten Pronk, Deltares", 12 | assets=String[], 13 | ) 14 | 15 | deploydocs(; 16 | repo="github.com/evetion/PointCloudFilters.jl", 17 | ) 18 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # Documentation: http://docs.travis-ci.com/user/languages/julia/ 2 | language: julia 3 | os: 4 | - linux 5 | - osx 6 | julia: 7 | - 1.3 8 | - nightly 9 | notifications: 10 | email: false 11 | after_success: 12 | - julia -e 'using Pkg; Pkg.add("Coverage"); using Coverage; Codecov.submit(process_folder())' 13 | jobs: 14 | allow_failures: 15 | - julia: nightly 16 | fast_finish: true 17 | include: 18 | - stage: Documentation 19 | julia: 1.3 20 | script: julia --project=docs -e ' 21 | using Pkg; 22 | Pkg.develop(PackageSpec(path=pwd())); 23 | Pkg.instantiate(); 24 | include("docs/make.jl");' 25 | after_success: skip 26 | -------------------------------------------------------------------------------- /.appveyor.yml: -------------------------------------------------------------------------------- 1 | # Documentation: https://github.com/JuliaCI/Appveyor.jl 2 | environment: 3 | matrix: 4 | - julia_version: 1.3 5 | - julia_version: nightly 6 | platform: 7 | - x86 8 | - x64 9 | matrix: 10 | allow_failures: 11 | - julia_version: nightly 12 | branches: 13 | only: 14 | - master 15 | - /release-.*/ 16 | notifications: 17 | - provider: Email 18 | on_build_success: false 19 | on_build_failure: false 20 | on_build_status_changed: false 21 | install: 22 | - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/JuliaCI/Appveyor.jl/version-1/bin/install.ps1")) 23 | build_script: 24 | - echo "%JL_BUILD_SCRIPT%" 25 | - C:\julia\bin\julia -e "%JL_BUILD_SCRIPT%" 26 | test_script: 27 | - echo "%JL_TEST_SCRIPT%" 28 | - C:\julia\bin\julia -e "%JL_TEST_SCRIPT%" 29 | on_success: 30 | - echo "%JL_CODECOV_SCRIPT%" 31 | - C:\julia\bin\julia -e "%JL_CODECOV_SCRIPT%" 32 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020 Maarten Pronk, Deltares 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [WIP] PointCloudFilters 2 | 3 | [![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://evetion.github.io/PointCloudFilters.jl/stable) 4 | [![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://evetion.github.io/PointCloudFilters.jl/dev) 5 | [![Build Status](https://travis-ci.com/evetion/PointCloudFilters.jl.svg?branch=master)](https://travis-ci.com/evetion/PointCloudFilters.jl) 6 | [![Build Status](https://ci.appveyor.com/api/projects/status/github/evetion/PointCloudFilters.jl?svg=true)](https://ci.appveyor.com/project/evetion/PointCloudFilters-jl) 7 | [![Codecov](https://codecov.io/gh/evetion/PointCloudFilters.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/evetion/PointCloudFilters.jl) 8 | [![Build Status](https://api.cirrus-ci.com/github/evetion/PointCloudFilters.jl.svg)](https://cirrus-ci.com/github/evetion/PointCloudFilters.jl) 9 | 10 | A Julia package to filter LiDAR pointclouds. 11 | 12 | ## Usage 13 | ```julia 14 | using LazIO 15 | using PointCloudFilters 16 | 17 | pc = LazIO.load(fn) 18 | f = MedianFilter(window=3, iterations=3) 19 | 20 | indices = findall(f, pc) 21 | classify!(pc, indices, :ground) 22 | ``` 23 | 24 | ## Noise Algorithms 25 | - [WIP] DRAGANN as described by [Neuenschwander and Pitts 2019](https://doi.org/10.1016/j.rse.2018.11.005). 26 | - [WIP] Lasnoise voxel method as described by [Isenburg](http://lastools.org/download/lasnoise_README.txt) 27 | - [WIP] Voxel method as described by [Griffioen](http://resolver.tudelft.nl/uuid:2ffa73f4-34cc-4ea0-82df-11e61cb47bea) 28 | 29 | ## Ground filtering 30 | - [WIP] Ground filter as described by [Neuenschwander and Pitts 2019](https://icesat-2.gsfc.nasa.gov/sites/default/files/page_files/ICESat2_ATL08_ATBD_r002_v2.pdf) 31 | - ... 32 | -------------------------------------------------------------------------------- /docs/Manifest.toml: -------------------------------------------------------------------------------- 1 | # This file is machine-generated - editing it directly is not advised 2 | 3 | [[Base64]] 4 | uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" 5 | 6 | [[Dates]] 7 | deps = ["Printf"] 8 | uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" 9 | 10 | [[Distributed]] 11 | deps = ["Random", "Serialization", "Sockets"] 12 | uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" 13 | 14 | [[DocStringExtensions]] 15 | deps = ["LibGit2", "Markdown", "Pkg", "Test"] 16 | git-tree-sha1 = "88bb0edb352b16608036faadcc071adda068582a" 17 | uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" 18 | version = "0.8.1" 19 | 20 | [[Documenter]] 21 | deps = ["Base64", "Dates", "DocStringExtensions", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"] 22 | git-tree-sha1 = "d497bcc45bb98a1fbe19445a774cfafeabc6c6df" 23 | uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" 24 | version = "0.24.5" 25 | 26 | [[InteractiveUtils]] 27 | deps = ["Markdown"] 28 | uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" 29 | 30 | [[JSON]] 31 | deps = ["Dates", "Mmap", "Parsers", "Unicode"] 32 | git-tree-sha1 = "b34d7cef7b337321e97d22242c3c2b91f476748e" 33 | uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" 34 | version = "0.21.0" 35 | 36 | [[LibGit2]] 37 | uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" 38 | 39 | [[Libdl]] 40 | uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" 41 | 42 | [[Logging]] 43 | uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" 44 | 45 | [[Markdown]] 46 | deps = ["Base64"] 47 | uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" 48 | 49 | [[Mmap]] 50 | uuid = "a63ad114-7e13-5084-954f-fe012c677804" 51 | 52 | [[Parsers]] 53 | deps = ["Dates", "Test"] 54 | git-tree-sha1 = "0c16b3179190d3046c073440d94172cfc3bb0553" 55 | uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" 56 | version = "0.3.12" 57 | 58 | [[Pkg]] 59 | deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Test", "UUIDs"] 60 | uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" 61 | 62 | [[Printf]] 63 | deps = ["Unicode"] 64 | uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" 65 | 66 | [[REPL]] 67 | deps = ["InteractiveUtils", "Markdown", "Sockets"] 68 | uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" 69 | 70 | [[Random]] 71 | deps = ["Serialization"] 72 | uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" 73 | 74 | [[SHA]] 75 | uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" 76 | 77 | [[Serialization]] 78 | uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" 79 | 80 | [[Sockets]] 81 | uuid = "6462fe0b-24de-5631-8697-dd941f90decc" 82 | 83 | [[Test]] 84 | deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] 85 | uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" 86 | 87 | [[UUIDs]] 88 | deps = ["Random", "SHA"] 89 | uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" 90 | 91 | [[Unicode]] 92 | uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" 93 | --------------------------------------------------------------------------------