{"id":865,"date":"2019-04-11T23:23:16","date_gmt":"2019-04-12T04:23:16","guid":{"rendered":"http:\/\/sunapi386.ca\/wordpress\/?p=865"},"modified":"2019-04-11T23:23:24","modified_gmt":"2019-04-12T04:23:24","slug":"pdal-voxel-center-nearest-neighbor","status":"publish","type":"post","link":"https:\/\/sunapi386.ca\/wordpress\/pdal-voxel-center-nearest-neighbor\/","title":{"rendered":"PDAL Voxel Center Nearest Neighbor"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"531\" src=\"https:\/\/sunapi386.ca\/wordpress\/wp-content\/uploads\/2019\/04\/output-2019-04-11-211609.gif\" alt=\"\" class=\"wp-image-866\"\/><\/figure>\n\n\n\n<p><a href=\"https:\/\/pdal.io\/stages\/filters.voxelcenternearestneighbor.html#filters-voxelcenternearestneighbor\">https:\/\/pdal.io\/stages\/filters.voxelcenternearestneighbor.html#filters-voxelcenternearestneighbor<\/a><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>The\u00a0<strong>VoxelCenterNearestNeighbor filter<\/strong>\u00a0is a voxel-based sampling filter. The input point cloud is divided into 3D voxels at the given cell size. For each populated voxel, the coordinates of the voxel center are used as the query point in a 3D nearest neighbor search. The nearest neighbor is then added to the output point cloud, along with any existing dimensions.<\/p><\/blockquote>\n\n\n\n<p>Notice the red dots are much more sparse than the gray intensity dots. Red dots are separated 1.0 meters and gray are 0.1 meters.<\/p>\n\n\n\n<p>To generate this I did converted with PDAL and then used Potree to visualize.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">pdal pipeline $HOME\/voxcnn-1.0.json <br><br>voxcnn-1.0.json<br> [<br>     \"801403-802580-2493384-2494335.laz\",<br>    {<br>         \"type\":\"filters.voxelcenternearestneighbor\",<br>         \"cell\":1.0<br>     },<br>     \"801403-802580-2493384-2494335-voxelcenternearestneighbor-1.0.laz\"<br> ]<br><br>-rw-rw-r-- 1 jsun jsun  65M Apr 11 21:01 801403-802580-2493384-2494335-voxelcenternearestneighbor.laz<br> -rw-rw-r-- 1 jsun jsun 8.1M Apr 11 21:04 801403-802580-2493384-2494335-voxelcenternearestneighbor-1.0.laz<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>https:\/\/pdal.io\/stages\/filters.voxelcenternearestneighbor.html#filters-voxelcenternearestneighbor The\u00a0VoxelCenterNearestNeighbor filter\u00a0is a voxel-based sampling filter. The input point cloud is divided into 3D voxels at the given cell size. For each populated voxel, the coordinates of the voxel center are used as the query point in a 3D nearest neighbor search. The nearest neighbor is then added to the output point cloud, along &hellip; <a href=\"https:\/\/sunapi386.ca\/wordpress\/pdal-voxel-center-nearest-neighbor\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PDAL Voxel Center Nearest Neighbor<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[34],"tags":[],"class_list":["post-865","post","type-post","status-publish","format-standard","hentry","category-thoughts"],"_links":{"self":[{"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/posts\/865","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/comments?post=865"}],"version-history":[{"count":1,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/posts\/865\/revisions"}],"predecessor-version":[{"id":867,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/posts\/865\/revisions\/867"}],"wp:attachment":[{"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/media?parent=865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/categories?post=865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunapi386.ca\/wordpress\/wp-json\/wp\/v2\/tags?post=865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}