From 72f61788f8f97be2fa3351576d9c0b31dcf3b5c7 Mon Sep 17 00:00:00 2001 From: Withalion Date: Fri, 17 Jan 2025 11:21:27 +0100 Subject: [PATCH] Add 3D VPC unit tests, fix VPC test data --- src/3d/qgsvirtualpointcloudentity_p.cpp | 23 +- tests/src/3d/testqgspointcloud3drendering.cpp | 87 +- ...expected_virtual_pointcloud_3d_extents.png | Bin 0 -> 2078 bytes ...expected_virtual_pointcloud_3d_extents.png | Bin 0 -> 2007 bytes ...xpected_virtual_pointcloud_3d_overview.png | Bin 0 -> 1652 bytes ...xpected_virtual_pointcloud_3d_overview.png | Bin 0 -> 1645 bytes .../expected_classified_render_overview.png | Bin 471523 -> 471523 bytes .../virtual/sunshine-coast/0-0.copc.laz | Bin 3806 -> 3813 bytes .../virtual/sunshine-coast/0-1.copc.laz | Bin 3361 -> 3368 bytes .../virtual/sunshine-coast/1-0.copc.laz | Bin 3667 -> 3674 bytes .../virtual/sunshine-coast/1-1.copc.laz | Bin 3264 -> 3263 bytes .../combined-with-overview-overview.copc.laz | Bin 3889 -> 3931 bytes .../sunshine-coast/combined-with-overview.vpc | 128 +-- .../virtual/sunshine-coast/combined.vpc | 128 +-- .../new-combined-overview.copc.laz | Bin 3889 -> 0 bytes .../virtual/sunshine-coast/new-combined.vpc | 877 ------------------ 16 files changed, 225 insertions(+), 1018 deletions(-) create mode 100644 tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_extents/default/expected_virtual_pointcloud_3d_extents.png create mode 100755 tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_extents/qt6/expected_virtual_pointcloud_3d_extents.png create mode 100644 tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/default/expected_virtual_pointcloud_3d_overview.png create mode 100644 tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/qt6/expected_virtual_pointcloud_3d_overview.png mode change 100644 => 100755 tests/testdata/control_images/pointcloudrenderer/expected_classified_render_overview/expected_classified_render_overview.png delete mode 100644 tests/testdata/point_clouds/virtual/sunshine-coast/new-combined-overview.copc.laz delete mode 100644 tests/testdata/point_clouds/virtual/sunshine-coast/new-combined.vpc diff --git a/src/3d/qgsvirtualpointcloudentity_p.cpp b/src/3d/qgsvirtualpointcloudentity_p.cpp index bfead9b1d15b..914b83f7c13c 100644 --- a/src/3d/qgsvirtualpointcloudentity_p.cpp +++ b/src/3d/qgsvirtualpointcloudentity_p.cpp @@ -151,17 +151,20 @@ void QgsVirtualPointCloudEntity::handleSceneUpdate( const SceneContext &sceneCon } updateBboxEntity(); - // reuse the same logic for showing bounding boxes as above - const QgsRectangle mapExtent = Qgs3DUtils::tryReprojectExtent2D( mMapSettings->extent(), mMapSettings->crs(), mLayer->crs(), mMapSettings->transformContext() ); - const QgsAABB overviewBBox = Qgs3DUtils::mapToWorldExtent( provider()->overview().extent().intersect( mapExtent ), provider()->overview().zMin(), provider()->overview().zMax(), mMapSettings->origin() ); - const float epsilon = std::min( overviewBBox.xExtent(), overviewBBox.yExtent() ) / 256; - const float distance = overviewBBox.distanceFromPoint( sceneContext.cameraPos ); - const float sse = Qgs3DUtils::screenSpaceError( epsilon, distance, sceneContext.screenSizePx, sceneContext.cameraFov ); - const bool displayAsBbox = sceneContext.cameraPos.isNull() || sse < .2; - const auto rendererBehavior = dynamic_cast( mLayer->renderer3D() )->zoomOutBehavior(); - if ( !displayAsBbox && ( rendererBehavior == Qgis::PointCloudZoomOutRenderBehavior::RenderOverview || rendererBehavior == Qgis::PointCloudZoomOutRenderBehavior::RenderOverviewAndExtents ) ) + if ( provider()->overview() ) { - mOverviewEntity->handleSceneUpdate( sceneContext ); + // reuse the same logic for showing bounding boxes as above + const QgsRectangle mapExtent = Qgs3DUtils::tryReprojectExtent2D( mMapSettings->extent(), mMapSettings->crs(), mLayer->crs(), mMapSettings->transformContext() ); + const QgsAABB overviewBBox = Qgs3DUtils::mapToWorldExtent( provider()->overview().extent().intersect( mapExtent ), provider()->overview().zMin(), provider()->overview().zMax(), mMapSettings->origin() ); + const float epsilon = std::min( overviewBBox.xExtent(), overviewBBox.yExtent() ) / 256; + const float distance = overviewBBox.distanceFromPoint( sceneContext.cameraPos ); + const float sse = Qgs3DUtils::screenSpaceError( epsilon, distance, sceneContext.screenSizePx, sceneContext.cameraFov ); + const bool displayAsBbox = sceneContext.cameraPos.isNull() || sse < .2; + const auto rendererBehavior = dynamic_cast( mLayer->renderer3D() )->zoomOutBehavior(); + if ( !displayAsBbox && ( rendererBehavior == Qgis::PointCloudZoomOutRenderBehavior::RenderOverview || rendererBehavior == Qgis::PointCloudZoomOutRenderBehavior::RenderOverviewAndExtents ) ) + { + mOverviewEntity->handleSceneUpdate( sceneContext ); + } } } diff --git a/tests/src/3d/testqgspointcloud3drendering.cpp b/tests/src/3d/testqgspointcloud3drendering.cpp index df49e68c17ae..a57b190f879a 100644 --- a/tests/src/3d/testqgspointcloud3drendering.cpp +++ b/tests/src/3d/testqgspointcloud3drendering.cpp @@ -33,9 +33,6 @@ #include "qgs3dmapsettings.h" #include "qgs3dmapscene.h" -#include -#include - class TestQgsPointCloud3DRendering : public QgsTest { Q_OBJECT @@ -58,10 +55,14 @@ class TestQgsPointCloud3DRendering : public QgsTest void testPointCloudFilteredClassification(); void testPointCloudFilteredSceneExtent(); + void testPointCloud3DExtents(); + void testPointCloud3DOverview(); + private: std::unique_ptr mProject; QgsPointCloudLayer *mLayer; + QgsPointCloudLayer *mVpcLayer; }; //runs before all tests @@ -79,6 +80,9 @@ void TestQgsPointCloud3DRendering::initTestCase() mLayer = new QgsPointCloudLayer( dataDir + "/point_clouds/ept/sunshine-coast-laz/ept.json", "test", "ept" ); QVERIFY( mLayer->isValid() ); mProject->addMapLayer( mLayer ); + mVpcLayer = new QgsPointCloudLayer( dataDir + "/point_clouds/virtual/sunshine-coast/combined-with-overview.vpc", "test", "vpc" ); + QVERIFY( mVpcLayer->isValid() ); + mProject->addMapLayer( mVpcLayer ); mProject->setCrs( mLayer->crs() ); // set a default 3D renderer @@ -522,5 +526,82 @@ void TestQgsPointCloud3DRendering::testPointCloudFilteredSceneExtent() QGSVERIFYIMAGECHECK( "pointcloud_3d_filtered_scene_extent", "pointcloud_3d_filtered_scene_extent", img, QString(), 80, QSize( 0, 0 ), 15 ); } +void TestQgsPointCloud3DRendering::testPointCloud3DExtents() +{ + mProject->setCrs( mVpcLayer->crs() ); + + Qgs3DMapSettings *map = new Qgs3DMapSettings; + map->setCrs( mProject->crs() ); + map->setExtent( mVpcLayer->extent() ); + map->setLayers( QList() << mVpcLayer ); + QgsPointLightSettings defaultLight; + defaultLight.setIntensity( 0.5 ); + defaultLight.setPosition( QgsVector3D( 0, 1000, 0 ) ); + map->setLightSources( { defaultLight.clone() } ); + + QgsOffscreen3DEngine engine; + Qgs3DMapScene *scene = new Qgs3DMapScene( *map, &engine ); + engine.setRootEntity( scene ); + + QgsClassificationPointCloud3DSymbol *symbol = new QgsClassificationPointCloud3DSymbol(); + symbol->setAttribute( QStringLiteral( "Classification" ) ); + symbol->setCategoriesList( QgsPointCloudClassifiedRenderer::defaultCategories() ); + symbol->setPointSize( 10 ); + + QgsPointCloudLayer3DRenderer *renderer = new QgsPointCloudLayer3DRenderer(); + renderer->setSymbol( symbol ); + mVpcLayer->setRenderer3D( renderer ); + + scene->cameraController()->resetView( 90 ); + Qgs3DUtils::captureSceneImage( engine, scene ); + // When running the test on Travis, it would initially return empty rendered image. + // Capturing the initial image and throwing it away fixes that. Hopefully we will + // find a better fix in the future. + const QImage img = Qgs3DUtils::captureSceneImage( engine, scene ); + + QGSVERIFYIMAGECHECK( "virtual_pointcloud_3d_extents", "virtual_pointcloud_3d_extents", img, QString(), 40, QSize( 0, 0 ), 55 ); +} + +void TestQgsPointCloud3DRendering::testPointCloud3DOverview() +{ + Qgs3DMapSettings *map = new Qgs3DMapSettings; + map->setCrs( mProject->crs() ); + map->setExtent( mVpcLayer->extent() ); + map->setLayers( QList() << mVpcLayer ); + QgsPointLightSettings defaultLight; + defaultLight.setIntensity( 0.5 ); + defaultLight.setPosition( QgsVector3D( 0, 1000, 0 ) ); + map->setLightSources( { defaultLight.clone() } ); + + QgsOffscreen3DEngine engine; + Qgs3DMapScene *scene = new Qgs3DMapScene( *map, &engine ); + engine.setRootEntity( scene ); + + //Classification symbol + QgsClassificationPointCloud3DSymbol *symbol = new QgsClassificationPointCloud3DSymbol(); + symbol->setAttribute( QStringLiteral( "Classification" ) ); + symbol->setCategoriesList( QgsPointCloudClassifiedRenderer::defaultCategories() ); + symbol->setPointSize( 3 ); + + mVpcLayer->setRenderer3D( nullptr ); + QgsPointCloudLayer3DRenderer *renderer = new QgsPointCloudLayer3DRenderer(); + renderer->setSymbol( symbol ); + renderer->setZoomOutBehavior( Qgis::PointCloudZoomOutRenderBehavior::RenderOverview ); + mVpcLayer->setRenderer3D( renderer ); + + scene->cameraController()->resetView( 120 ); + Qgs3DUtils::captureSceneImage( engine, scene ); + // There is a bug in overview rendering, which doesn't render overview right away, it needs to get out of camera view + // and back in. Then it renders correctly + scene->cameraController()->moveView( mVpcLayer->extent().width(), mVpcLayer->extent().height() ); + scene->cameraController()->resetView( 120 ); + // When running the test on Travis, it would initially return empty rendered image. + // Capturing the initial image and throwing it away fixes that. Hopefully we will + // find a better fix in the future. + const QImage img = Qgs3DUtils::captureSceneImage( engine, scene ); + + QGSVERIFYIMAGECHECK( "virtual_pointcloud_3d_overview", "virtual_pointcloud_3d_overview", img, QString(), 20, QSize( 0, 0 ), 15 ); +} + QGSTEST_MAIN( TestQgsPointCloud3DRendering ) #include "testqgspointcloud3drendering.moc" diff --git a/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_extents/default/expected_virtual_pointcloud_3d_extents.png b/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_extents/default/expected_virtual_pointcloud_3d_extents.png new file mode 100644 index 0000000000000000000000000000000000000000..78cd6e70adc5eee03289824de51563921db99d3b GIT binary patch literal 2078 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;wb| z85r0vc)B=-RLpsM_u`~Q77}fV)vMN@?|#bly+P}GWH_tur@s@PTW;9(T;tNj=?u-& zxq-$ERdC>G(N9l)28mox{)YcMma#J&;9!b5^+?}nwf##*hBMh4|ID4ia5zS1+pB>4 zCpirq8h$AqU|76TpNYp{)~`)M2@Qo;rb{!jNx0PR{61Tb;lR(e=JQwUe`k?cpwAuO za8tK@eb2_!?BCsIPMRh(#I32VbZlVU6%Zd+%sXTG95HJ~MvuVwdqN5KHV9jqNOo+v zdGnBFM%>OQ_QQU!PP;Lkk(T1Qy;A=+r@{No501M0`?H+Gw;Al_FqoZTuxHu6H>wA6 zmLB}j^Xn61x#Q-;SCw-g=GzI@_%z&1zkAW*9=kltz9%9k^9!t`u1weGG?2fPkhW}J zjeo<>Ic&!2Uzc(+KGT+}5t((dOV?AI>CASM8I>#ac{vSuGYpIa;%^Bh+`8}}>&hbC z+moNM%t$ktu{kKdN+2OBN?PaeoX%gDI@J>|&TvmHl#(;{3=ca{^036jeY>2?D*eA4 z275CKWc@teq;?xNFkGIn+ywsVEEA$U@7~IV?a9_BuN991zf`eC<@8eNB zz_aLJ$g+Js>IZrr8_FI&aZ=ArT#)HZK)CnAhgY7O-fkCRRC8$7bgJbPN-#2+vBtI5 zQ#c{XWQIup%q2{WYM#xK=MPO+VwqvUo2K%0DIcSnf3u`>t)^>(repI<-`bUK4J)0R ztpjDhE?sv23&VqWDIfk<-o8vemfxn{kDmAE&oBA&r+OBtF}6*vK65@q`_M{0Qwy={ z4U7s7WZ(nW1rPNs`!#9bul%xk`Rz~U0Ta-&Uq%m3y)U=bSz&2*Odz3Q;gac78JKyL z_TCXrXn40|x;qn(ux7R6mm^E2rvnoY_sgfIjBFV`RX3d)7-vn4+a{baqm}zWtfzi8 zr@?v`ImM9wJ6+oojQN!JI*6aX5xX{#wUgZ)G8=op3Lr|Mm3!^-l%1 zER{*PSNd)H{Q!k;XbhT2gijjhRx^yHr=r6SUKa{7S#haPHi*0R{HTXoq3)z zqqz7rb1bL9{Yejh#W37EU6aPZxQy4_JAAX-_1+8Bo}d`i-5ELSu~DX^Ps7VYm6?1; zTvVMJUV5}?7cl-{ojh5AahbK`G6msD7K~{E<(a%`-1f?QMHCP4Jk`@}I%DM}m|!$# zy4r|+g7kN&9W-SF^<%;hyD)3g39VP{}47D`~?5E#WnCJcV~@-w{129~`) z;+cFzPv6z%jlImg;_#bAQ|5nRm~l6E{tDrb| z85r0*JzX3_D(1Ys>zyZU$>89qdg5!zt$h!4dJJVWrhU!)6!>aY>%)|z7kum|PI+*d z6KKqE1z}%T%P|<-4&!g|eqP1Ez@vWP^^JWsPc!PSGczpvv?l&|+T-e+`d5q$GUtw; zR`_ab!N@k_)UoOOeG3?$1;*QP8XQo0bvhi#Yb$nbTZ3~ z-x&rqOZVCMH0+$scKGB{eg9(iGs-cX#RZp6e}2qH-);WGrrls`UK9(7>H8zvp@KhvEGv8gzayC!KUEkH9EX7FDvEk-qw$F7}raQ_w zZZ-}-w1-!F=0cVke|HK!KKeK&0Cy!5v=wLH$`n3t@63cm0&)?qn z^WU%decIYxrknDoY%`gIjQCo(XPQqtd;xxAg3m2ez?qeEPJK>5S=oe)0a<;amRx-8=v8=RfWV?o4NV zr_4~^{011GJNt!-HP%%~x&u>%(0+mE=f7`SHPfM?a+=Wk%-_FrOYR(!N&|+Kx!0NQ zO-Y^{2ET(JEw!lMcSuxUkugm{HO*H{MOz>tE#T45Gapn>_b=rz2-f^qlXfF1*_X-3 zxpVnPw+!!Y)4!|O4_rKXIKZy6#Iry0$ondW2aOgJe#IH7Gc3P+RG%loeYWP`q}@N* zqRL1MSIS~#R5v+k85(K_=2tNsh={gjcrYKB#d6~JZCYGx+fW)2tK-@bd1#q1bA>On u_U};shQ*WHFYejII9zKB>iWxX`G1DDQmf-7^^a75O!jp3b6Mw<&;$V2e+Li% literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/default/expected_virtual_pointcloud_3d_overview.png b/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/default/expected_virtual_pointcloud_3d_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..e72fe0fe5d2c6b6aabed4f81260a8baaf35dda7d GIT binary patch literal 1652 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;wb| z85r2qJY5_^D(1Ys>shwgLBPRrSA6_LE0tX-`fEHe2!P87_I(hJ{nNKc2N}f#f;HGT(-U`--cwBX?HT z1(wvd-UBL(3cr^8fdA?B>!zZ1T@237r+-`Z9xl*`o*eU1Z|$$|HH_sf60c5Q(ls_z zQ9E!UU~!<4_k%{>Jsr$aTsNNP{p4Jo_TmH!&&eZpJt4<3CE60VtZ&O;;^8fwp%ZND z!(*d<;KJEUydO?4%e!lHy)H#E!lOa)j^&DWcjv4RPqG5q{8%KuJ=I$AZe!CK7744_ z>yzIqhW0BmGqx2h4XKO&(k8v$=j4TM2Io}Y$=g0W*u?dd)8LC@?}w)>62ER+ZOGf< zQS-Z7PPt8kiD#;*Y_7Q6pSQ&p<>DPm2Q~y3Z(j5I$c5<)&f2HBw_7!SRnGd%6UZXL zw70a?^i$EAcTN_JZ83VzZ;vsb-79qZndC2_gbbx;T&p_{Jr_#g_;PL8_SaE2bfYfJ zVsO@b-TeK}tc@K`PE0($cTCow+W(LBn@d9@JI`65^x?QQQnT{ii01QR+olq}eD zI<9s0LKD#-p@bL7-jUa9zdw&IJ3XO=!I^1m`<1Wx2TfF+MHt&o>3x)5o>+WIi)YQ! znE9e0dHI9?8xB5`+$5ObvEbXI>$1@k<^%mc{fF$mj2YqfhqenQ{4n6+{jC6uiDx^% zecXA|24s*()BBUVth>DT3-~r9E?+l$)%pqjz^Ht^?9z;*rH9s9)QB>+wJp2+BJ!TR z?P&|%#~)9x|F_1=-S?P)UxQ-66RjV=)UW-WbJTQ;%7F>z3RlE_{dD5Y_gLoZED};t z8!P`A_8$LU@j~OxR0ih-Yj($+XK}Uxn)gWjkXqUg5hfnVml|*8F*v&&T)g=nNG9yk zy$OH59I+{9X=ITo^9@$iW^C)3$9r~jaOtg$(mNCnT=2TZVrOd@Y{VjzaKqG>b)d4? fsJ+-j!09i0c=$_w%ae!SfE0MT`njxgN@xNA>}-RI literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/qt6/expected_virtual_pointcloud_3d_overview.png b/tests/testdata/control_images/3d/expected_virtual_pointcloud_3d_overview/qt6/expected_virtual_pointcloud_3d_overview.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd86a0084942f69da2bd2faf1a64735764e12c1 GIT binary patch literal 1645 zcmeAS@N?(olHy`uVBq!ia0y~yU}|7sV0^&A1Qgk|*?TjP;wb| z85r2)JzX3_D(1Ys>s$25fu|u*-8B42yUFx9t_qBgJ|u6C+Ekf8br#pWd$ki8swIGi zjDmp8P$9bHlBaO%y7V3D1pHvftB~n%yX~bT(pvQ`g7Wj;lqs* zi@yeP(s3b4ijx@*r`;9#vUEY+f1?R54T_hqW<+PHtSw->VanL{ZQtf!sekWPJQSU$ zx$API;x5BAjqy%bo?-o$Qvfx(Fp?jTjw`ZN1U7|RV!I?9XQ-=St0ng!wS@CO+Uua}-o^s$l-_gA?FI*cI?%C}d zySviP=0~bR2ZM9@^96p#g9D7i_pzmVC>;nmb4n?0&zpgy1RDO?3A>RbSMvK_x&#O&Q_UCH7W886^ZM3=QrFv z&Rk{4czBx0n|Gn7_wVNZqI5uD>EYj7zyIUjtaC-}z=ZsL7c^Nzvq4T;ykuobS-`$k z``$T~Gw~>jy`Ntn_v48E{oOm3Ips3(glcNMnZ@Aj?&%x*`-GE11A}u%>)lz)J_~cj z`)}>HJ-m#=;7h^+7N9fsY`wjo=UnoajGndxCZ4H(PTk{P{5k&QmRW6+SR|@4c2~x2 zyYR1Ss;q^G;(-at|H97PZNG9`ZuX>w;*4z)y|ZpT*m&@9#ZP?)K_;Hwxk2SJ$DL0o zw@rIHKX=|jDaJOLyrVq%ehrFev?FtWyFPp>{&8X^$oU&zq^?gjdeh8scy>{--ifck z#BpOY-^A<>cbpm9c+?UOMDL&A(6Dfh+2)t2!OwqXeQ1qg;%U6*l4s*{IK1<{-%=|s zY1IP)8M`WX1l;s}|EBWPJh3uIpoYrpa_8j ad;UK(e17ig+pCvB?(uZ>b6Mw<&;$Uu*@WN# literal 0 HcmV?d00001 diff --git a/tests/testdata/control_images/pointcloudrenderer/expected_classified_render_overview/expected_classified_render_overview.png b/tests/testdata/control_images/pointcloudrenderer/expected_classified_render_overview/expected_classified_render_overview.png old mode 100644 new mode 100755 index 95b6090cbd4cceff76d5d75b4c04ae287390fecd..bbbf78375aa8d92eca9605e844b2afdf0206a380 GIT binary patch delta 2170 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 diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/0-0.copc.laz b/tests/testdata/point_clouds/virtual/sunshine-coast/0-0.copc.laz index 187f03a3c9ca92766d7da17895936e057ee242b7..bea88f11cf693e9f3d7c1f862c04b4157d516970 100644 GIT binary patch delta 54 vcmca7`&4$rWOh*ohQjpBVg?i-ws{5n1U7CXJquF4g3v!4|4(ICw075SdyZ`_I diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/0-1.copc.laz b/tests/testdata/point_clouds/virtual/sunshine-coast/0-1.copc.laz index c9790a104afc89b19b1f04795539b6ccd7f871d6..285c2429e910f7a0b83ad0661d3f8a02afc7f3de 100644 GIT binary patch delta 42 ncmZ1|wL)sc4OUTxyu$R%Vg?i-viU9RT(-$8cz7pI;F$;j<}(Vi delta 43 ocmZ1>wNPrq4OY<)a|_cmiy2S=@8-9xbJF#`&a+$_c3&cgxnFWa0jnrOUSWD>F#`$^-rUMMmyOv}&vNnv4w1=LJZ%8`EebvW delta 47 scmdllc|dYQ0jubTxrOPO#SADwWOFO)Ts9VSJp+@;6F5XBTk^C405B5^ivR!s diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview-overview.copc.laz b/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview-overview.copc.laz index ea5610819146b52cee3d344d66696469a0bc0436..eceec0f416e7370b037f7b18251af03c0e90b4d2 100644 GIT binary patch delta 1412 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 diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview.vpc b/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview.vpc index 054337c51212..46d7237db9e9 100644 --- a/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview.vpc +++ b/tests/testdata/point_clouds/virtual/sunshine-coast/combined-with-overview.vpc @@ -8,33 +8,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "0-0.copc", + "id": "0-0", "geometry": { "coordinates": [ [ [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.66206747620571, 74.68 ], [ - 498062.0, - 7050995.82, + 152.9805245825292, + -26.662040659997626, 74.68 ], [ - 498064.98, - 7050995.82, + 152.98055452924817, + -26.662040664098438, 75.16 ], [ - 498064.98, - 7050992.85, + 152.9805545247028, + -26.662067480306522, 75.16 ], [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.66206747620571, 74.68 ] ] @@ -42,11 +42,11 @@ "type": "Polygon" }, "bbox": [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.662067480306522, 74.68, - 498064.98, - 7050995.82, + 152.98055452924817, + -26.662040659997626, 75.16 ], "properties": { @@ -201,7 +201,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -226,33 +226,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "0-1.copc", + "id": "0-1", "geometry": { "coordinates": [ [ [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.662040479472196, 74.64 ], [ - 498062.04, - 7050997.03, + 152.9805249863532, + -26.66202973493088, 74.64 ], [ - 498064.91, - 7050997.03, + 152.9805538276536, + -26.662029738880342, 79.0 ], [ - 498064.91, - 7050995.84, + 152.98055382583235, + -26.66204048342166, 79.0 ], [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.662040479472196, 74.64 ] ] @@ -260,11 +260,11 @@ "type": "Polygon" }, "bbox": [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.66204048342166, 74.64, - 498064.91, - 7050997.03, + 152.9805538276536, + -26.66202973493088, 79.0 ], "properties": { @@ -419,7 +419,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -444,33 +444,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "1-0.copc", + "id": "1-0", "geometry": { "coordinates": [ [ [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.66206757062428, 74.46 ], [ - 498065.0, - 7050995.83, + 152.98055473024814, + -26.66204057383568, 74.46 ], [ - 498067.39, - 7050995.83, + 152.9805787479187, + -26.662040577119992, 74.91 ], [ - 498067.39, - 7050992.84, + 152.98057874334847, + -26.662067573908597, 74.91 ], [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.66206757062428, 74.46 ] ] @@ -478,11 +478,11 @@ "type": "Polygon" }, "bbox": [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.662067573908597, 74.46, - 498067.39, - 7050995.83, + 152.9805787479187, + -26.66204057383568, 74.91 ], "properties": { @@ -637,7 +637,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -662,33 +662,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "1-1.copc", + "id": "1-1", "geometry": { "coordinates": [ [ [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039941817586, 74.34 ], [ - 498065.01, - 7050997.04, + 152.98055483259228, + -26.662029648727586, 74.34 ], [ - 498067.32, - 7050997.04, + 152.98057804632188, + -26.66202965190201, 80.02 ], [ - 498067.32, - 7050995.9, + 152.98057804457932, + -26.662039944992003, 80.02 ], [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039941817586, 74.34 ] ] @@ -696,11 +696,11 @@ "type": "Polygon" }, "bbox": [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039944992003, 74.34, - 498067.32, - 7050997.04, + 152.98057804632188, + -26.662029648727586, 80.02 ], "properties": { @@ -855,7 +855,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/combined.vpc b/tests/testdata/point_clouds/virtual/sunshine-coast/combined.vpc index b353cfea7b03..56a42dd429cc 100644 --- a/tests/testdata/point_clouds/virtual/sunshine-coast/combined.vpc +++ b/tests/testdata/point_clouds/virtual/sunshine-coast/combined.vpc @@ -8,33 +8,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "0-0.copc", + "id": "0-0", "geometry": { "coordinates": [ [ [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.66206747620571, 74.68 ], [ - 498062.0, - 7050995.82, + 152.9805245825292, + -26.662040659997626, 74.68 ], [ - 498064.98, - 7050995.82, + 152.98055452924817, + -26.662040664098438, 75.16 ], [ - 498064.98, - 7050992.85, + 152.9805545247028, + -26.662067480306522, 75.16 ], [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.66206747620571, 74.68 ] ] @@ -42,11 +42,11 @@ "type": "Polygon" }, "bbox": [ - 498062.0, - 7050992.85, + 152.9805245779768, + -26.662067480306522, 74.68, - 498064.98, - 7050995.82, + 152.98055452924817, + -26.662040659997626, 75.16 ], "properties": { @@ -201,7 +201,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -220,33 +220,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "0-1.copc", + "id": "0-1", "geometry": { "coordinates": [ [ [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.662040479472196, 74.64 ], [ - 498062.04, - 7050997.03, + 152.9805249863532, + -26.66202973493088, 74.64 ], [ - 498064.91, - 7050997.03, + 152.9805538276536, + -26.662029738880342, 79.0 ], [ - 498064.91, - 7050995.84, + 152.98055382583235, + -26.66204048342166, 79.0 ], [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.662040479472196, 74.64 ] ] @@ -254,11 +254,11 @@ "type": "Polygon" }, "bbox": [ - 498062.04, - 7050995.84, + 152.9805249845292, + -26.66204048342166, 74.64, - 498064.91, - 7050997.03, + 152.9805538276536, + -26.66202973493088, 79.0 ], "properties": { @@ -413,7 +413,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -432,33 +432,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "1-0.copc", + "id": "1-0", "geometry": { "coordinates": [ [ [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.66206757062428, 74.46 ], [ - 498065.0, - 7050995.83, + 152.98055473024814, + -26.66204057383568, 74.46 ], [ - 498067.39, - 7050995.83, + 152.9805787479187, + -26.662040577119992, 74.91 ], [ - 498067.39, - 7050992.84, + 152.98057874334847, + -26.662067573908597, 74.91 ], [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.66206757062428, 74.46 ] ] @@ -466,11 +466,11 @@ "type": "Polygon" }, "bbox": [ - 498065.0, - 7050992.84, + 152.98055472567222, + -26.662067573908597, 74.46, - 498067.39, - 7050995.83, + 152.9805787479187, + -26.66204057383568, 74.91 ], "properties": { @@ -625,7 +625,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { @@ -644,33 +644,33 @@ "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", "https://stac-extensions.github.io/projection/v1.1.0/schema.json" ], - "id": "1-1.copc", + "id": "1-1", "geometry": { "coordinates": [ [ [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039941817586, 74.34 ], [ - 498065.01, - 7050997.04, + 152.98055483259228, + -26.662029648727586, 74.34 ], [ - 498067.32, - 7050997.04, + 152.98057804632188, + -26.66202965190201, 80.02 ], [ - 498067.32, - 7050995.9, + 152.98057804457932, + -26.662039944992003, 80.02 ], [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039941817586, 74.34 ] ] @@ -678,11 +678,11 @@ "type": "Polygon" }, "bbox": [ - 498065.01, - 7050995.9, + 152.98055483084764, + -26.662039944992003, 74.34, - 498067.32, - 7050997.04, + 152.98057804632188, + -26.662029648727586, 80.02 ], "properties": { @@ -837,7 +837,7 @@ ], "type": "Polygon" }, - "proj:wkt2": "" + "proj:wkt2": "PROJCS[\"GDA94 / MGA zone 56\",GEOGCS[\"GDA94\",DATUM[\"Geocentric_Datum_of_Australia_1994\",SPHEROID[\"GRS 1980\",6378137,298.257222101,AUTHORITY[\"EPSG\",\"7019\"]],AUTHORITY[\"EPSG\",\"6283\"]],PRIMEM[\"Greenwich\",0,AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.0174532925199433,AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4283\"]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"latitude_of_origin\",0],PARAMETER[\"central_meridian\",153],PARAMETER[\"scale_factor\",0.9996],PARAMETER[\"false_easting\",500000],PARAMETER[\"false_northing\",10000000],UNIT[\"metre\",1,AUTHORITY[\"EPSG\",\"9001\"]],AXIS[\"Easting\",EAST],AXIS[\"Northing\",NORTH],AUTHORITY[\"EPSG\",\"28356\"]]" }, "links": [], "assets": { diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/new-combined-overview.copc.laz b/tests/testdata/point_clouds/virtual/sunshine-coast/new-combined-overview.copc.laz deleted file mode 100644 index ea5610819146b52cee3d344d66696469a0bc0436..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3889 zcmcIm3s@6Z7M>tJ5L-ckf^IQJRKz5mnY<=Yg#dyUknj*tS=lie$Y_{gG66yO5U6#9 zF5oV$3ae63t5vZqsJjcOymqNoDvA~#)fH>OM}5@icGdJw9yCDY>wf)uzc2UPd+t5w z{P*1do=mtbCIo_4_m7T#$K%cu^FsBI|v#DbQ`^( zB|yZ2A8TNXX}}Bm-JM?X6#t=eolDKX1Cu>vtxvog8*eU?-HrOY=Z3JDfQ8qyTq1zJ zq~(b>2IQQ?lE5ag{`-;^5wov1%cUli6>HpAvn4vf5>7wXGy;f>SeO}uhiOAGnY6!U zuh66^to^f~N+>8&9>gZ8WDPqmJlcBEJWecW(FcJO`y`g!W=`r_6M8)>JSG5w%C~LX zHpVRX_}7|G$~N1nj(U%~nc^h-uu$Y*mFgrjtA7Kb#&ua_8k?XL8YQ8GpvE{pq{g$- z2yHSu9oLdLMGuS0&|{Q6(?gKKMze#)L!N*{j?fq*mBImKljK^>Dndb%8VU*+XEYtL zOEzcZvri0$?mC0Pz1Cm|8|@rm=iL5%-c(C|OfDFn#sfke0y4quH6O?^=CM7H^UQ={ zR~xzmM2lWblDQ#wCVzAOSm%xLr8y6uetcQ)5c0SB6Yf*%HqO6ss=RuKXwx|XT3l%cG(-gBd3FL0)!ZHlSwuKnMV<$tL^ zzLR>pY6YkHiyw;G0`GA<+rPCJyZtG_&3}u}p@_~)MO#O)cf9mD7<01o@P$i$`$y}~ ziI4SOJhZO-+J%orFV6GAH1{-4JcR$IM>3-A;x50T$@;;8x4{*pcftRzI{$g?8RZ*M z9kTIxow>5pjfq&p$%0+q^&NWhqV*vE*(nM++uU~gbfEXsjoVkPe(S{-{5!SLHBoO) zn=GEb)x{9qyZy!t&PDdxr&~ANJ^t`kXnuEVU#p{I?O{7rT2H~kDeJ2HSdafZF|a)8 z;TpHZNmXTa;c<`tarI{0`K9uG!b(Mgq+;Ss{4U%AIOctpr6p1$`{*ip@$ zsNDtqf4tU>oh>xDzXEXW>{vfHI~J73%uLcUGp-Ms7`Kedht}uiv+^vBnHUx8bAjLO zwRj~l&1K7T+PVGZ(fM=6cft4j{R^D7Yu&jsWdbxV;X#wj@zS2Iu8-{4L9M|x?zhKY zRyRuAzMIuP<;U}H$bAx$esnNIx7^QM?Du(65;ZyO{nkB!i}yWThPU+`nOmRuz{@-F z@%ol#_|^TBYs#7`o+qt#dKQ@PTt7STKU)EUW4UKQ&pa@0WI9rOq_1-Hr*0n9J2CGE zec<6&qU@Ua&*FFEI&@Cz1&PkL;#+&F0Tw^v=+yIYf6*XKzgc*G8BO;?PuK6tXg*Iy$LNLvEv$>4&0vZ=6A6A zUMu~X>%7eqidJWN&K$S*-S#gJ`_!#C_qE|u$0&zuXAK>Wh=G&vRqb^3f%PDHOk*mB zpDMD@I2l^~`$w^jdO&@7EPEkIXmPDVm1)+EBu|3HyNIF*N=MR}!;frj&qT5Sln8`;iB&qS zlZi;Bz$}c&lru~i?vwM&)3{ilx{}aFCPx#rUP~F7G?+mg1Y8M74&VTDhXZUvEkMC1 zCb();YQZX$SY?tSN@O~rRpV*D3a0U(F&e#AK`c_*@FanS0H;XG<$w_bmASD2tc=bA zm)Xe|mcx1O_hvL4;DkX+&a8b{>lHVHkyB7=tkhBEpz! zW&#D1TGK~dh#F5B9?VFLL2nhY@828$(pbO05@ zOH08uE~0!G@D2P&P)b~@~}i`}umU!r0jKx^T-z X4u`>@keDKk5KhP!faBT@k(2Wi+P1nx diff --git a/tests/testdata/point_clouds/virtual/sunshine-coast/new-combined.vpc b/tests/testdata/point_clouds/virtual/sunshine-coast/new-combined.vpc deleted file mode 100644 index f1aaded4407e..000000000000 --- a/tests/testdata/point_clouds/virtual/sunshine-coast/new-combined.vpc +++ /dev/null @@ -1,877 +0,0 @@ -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v1.1.0/schema.json" - ], - "id": "0-0.copc", - "geometry": { - "coordinates": [ - [ - [ - 498062.0, - 7050992.85, - 74.68 - ], - [ - 498062.0, - 7050995.82, - 74.68 - ], - [ - 498064.98, - 7050995.82, - 75.16 - ], - [ - 498064.98, - 7050992.85, - 75.16 - ], - [ - 498062.0, - 7050992.85, - 74.68 - ] - ] - ], - "type": "Polygon" - }, - "bbox": [ - 498062.0, - 7050992.85, - 74.68, - 498064.98, - 7050995.82, - 75.16 - ], - "properties": { - "datetime": "2024-10-18T00:00:00Z", - "pc:count": 91, - "pc:encoding": "?", - "pc:schemas": [ - { - "name": "X", - "size": 8, - "type": "floating" - }, - { - "name": "Y", - "size": 8, - "type": "floating" - }, - { - "name": "Z", - "size": 8, - "type": "floating" - }, - { - "name": "Intensity", - "size": 2, - "type": "unsigned" - }, - { - "name": "ReturnNumber", - "size": 1, - "type": "unsigned" - }, - { - "name": "NumberOfReturns", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanDirectionFlag", - "size": 1, - "type": "unsigned" - }, - { - "name": "EdgeOfFlightLine", - "size": 1, - "type": "unsigned" - }, - { - "name": "Classification", - "size": 1, - "type": "unsigned" - }, - { - "name": "Synthetic", - "size": 1, - "type": "unsigned" - }, - { - "name": "KeyPoint", - "size": 1, - "type": "unsigned" - }, - { - "name": "Withheld", - "size": 1, - "type": "unsigned" - }, - { - "name": "Overlap", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanAngleRank", - "size": 4, - "type": "floating" - }, - { - "name": "UserData", - "size": 1, - "type": "unsigned" - }, - { - "name": "PointSourceId", - "size": 2, - "type": "unsigned" - }, - { - "name": "GpsTime", - "size": 8, - "type": "floating" - }, - { - "name": "ScanChannel", - "size": 1, - "type": "unsigned" - }, - { - "name": "Red", - "size": 2, - "type": "unsigned" - }, - { - "name": "Green", - "size": 2, - "type": "unsigned" - }, - { - "name": "Blue", - "size": 2, - "type": "unsigned" - } - ], - "pc:type": "lidar", - "proj:bbox": [ - 498062.0, - 7050992.85, - 74.68, - 498064.98, - 7050995.82, - 75.16 - ], - "proj:geometry": { - "coordinates": [ - [ - [ - 498062.0, - 7050992.85, - 74.68 - ], - [ - 498062.0, - 7050995.82, - 74.68 - ], - [ - 498064.98, - 7050995.82, - 75.16 - ], - [ - 498064.98, - 7050992.85, - 75.16 - ], - [ - 498062.0, - 7050992.85, - 74.68 - ] - ] - ], - "type": "Polygon" - }, - "proj:wkt2": "" - }, - "links": [], - "assets": { - "data": { - "href": "./0-0.copc.laz", - "roles": [ - "data" - ] - }, - "overview": { - "href": "./new-combined-overview.copc.laz", - "roles": [ - "overview" - ] - } - } - }, - { - "type": "Feature", - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v1.1.0/schema.json" - ], - "id": "0-1.copc", - "geometry": { - "coordinates": [ - [ - [ - 498062.04, - 7050995.84, - 74.64 - ], - [ - 498062.04, - 7050997.03, - 74.64 - ], - [ - 498064.91, - 7050997.03, - 79.0 - ], - [ - 498064.91, - 7050995.84, - 79.0 - ], - [ - 498062.04, - 7050995.84, - 74.64 - ] - ] - ], - "type": "Polygon" - }, - "bbox": [ - 498062.04, - 7050995.84, - 74.64, - 498064.91, - 7050997.03, - 79.0 - ], - "properties": { - "datetime": "2024-10-18T00:00:00Z", - "pc:count": 47, - "pc:encoding": "?", - "pc:schemas": [ - { - "name": "X", - "size": 8, - "type": "floating" - }, - { - "name": "Y", - "size": 8, - "type": "floating" - }, - { - "name": "Z", - "size": 8, - "type": "floating" - }, - { - "name": "Intensity", - "size": 2, - "type": "unsigned" - }, - { - "name": "ReturnNumber", - "size": 1, - "type": "unsigned" - }, - { - "name": "NumberOfReturns", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanDirectionFlag", - "size": 1, - "type": "unsigned" - }, - { - "name": "EdgeOfFlightLine", - "size": 1, - "type": "unsigned" - }, - { - "name": "Classification", - "size": 1, - "type": "unsigned" - }, - { - "name": "Synthetic", - "size": 1, - "type": "unsigned" - }, - { - "name": "KeyPoint", - "size": 1, - "type": "unsigned" - }, - { - "name": "Withheld", - "size": 1, - "type": "unsigned" - }, - { - "name": "Overlap", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanAngleRank", - "size": 4, - "type": "floating" - }, - { - "name": "UserData", - "size": 1, - "type": "unsigned" - }, - { - "name": "PointSourceId", - "size": 2, - "type": "unsigned" - }, - { - "name": "GpsTime", - "size": 8, - "type": "floating" - }, - { - "name": "ScanChannel", - "size": 1, - "type": "unsigned" - }, - { - "name": "Red", - "size": 2, - "type": "unsigned" - }, - { - "name": "Green", - "size": 2, - "type": "unsigned" - }, - { - "name": "Blue", - "size": 2, - "type": "unsigned" - } - ], - "pc:type": "lidar", - "proj:bbox": [ - 498062.04, - 7050995.84, - 74.64, - 498064.91, - 7050997.03, - 79.0 - ], - "proj:geometry": { - "coordinates": [ - [ - [ - 498062.04, - 7050995.84, - 74.64 - ], - [ - 498062.04, - 7050997.03, - 74.64 - ], - [ - 498064.91, - 7050997.03, - 79.0 - ], - [ - 498064.91, - 7050995.84, - 79.0 - ], - [ - 498062.04, - 7050995.84, - 74.64 - ] - ] - ], - "type": "Polygon" - }, - "proj:wkt2": "" - }, - "links": [], - "assets": { - "data": { - "href": "./0-1.copc.laz", - "roles": [ - "data" - ] - }, - "overview": { - "href": "./new-combined-overview.copc.laz", - "roles": [ - "overview" - ] - } - } - }, - { - "type": "Feature", - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v1.1.0/schema.json" - ], - "id": "1-0.copc", - "geometry": { - "coordinates": [ - [ - [ - 498065.0, - 7050992.84, - 74.46 - ], - [ - 498065.0, - 7050995.83, - 74.46 - ], - [ - 498067.39, - 7050995.83, - 74.91 - ], - [ - 498067.39, - 7050992.84, - 74.91 - ], - [ - 498065.0, - 7050992.84, - 74.46 - ] - ] - ], - "type": "Polygon" - }, - "bbox": [ - 498065.0, - 7050992.84, - 74.46, - 498067.39, - 7050995.83, - 74.91 - ], - "properties": { - "datetime": "2024-10-18T00:00:00Z", - "pc:count": 77, - "pc:encoding": "?", - "pc:schemas": [ - { - "name": "X", - "size": 8, - "type": "floating" - }, - { - "name": "Y", - "size": 8, - "type": "floating" - }, - { - "name": "Z", - "size": 8, - "type": "floating" - }, - { - "name": "Intensity", - "size": 2, - "type": "unsigned" - }, - { - "name": "ReturnNumber", - "size": 1, - "type": "unsigned" - }, - { - "name": "NumberOfReturns", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanDirectionFlag", - "size": 1, - "type": "unsigned" - }, - { - "name": "EdgeOfFlightLine", - "size": 1, - "type": "unsigned" - }, - { - "name": "Classification", - "size": 1, - "type": "unsigned" - }, - { - "name": "Synthetic", - "size": 1, - "type": "unsigned" - }, - { - "name": "KeyPoint", - "size": 1, - "type": "unsigned" - }, - { - "name": "Withheld", - "size": 1, - "type": "unsigned" - }, - { - "name": "Overlap", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanAngleRank", - "size": 4, - "type": "floating" - }, - { - "name": "UserData", - "size": 1, - "type": "unsigned" - }, - { - "name": "PointSourceId", - "size": 2, - "type": "unsigned" - }, - { - "name": "GpsTime", - "size": 8, - "type": "floating" - }, - { - "name": "ScanChannel", - "size": 1, - "type": "unsigned" - }, - { - "name": "Red", - "size": 2, - "type": "unsigned" - }, - { - "name": "Green", - "size": 2, - "type": "unsigned" - }, - { - "name": "Blue", - "size": 2, - "type": "unsigned" - } - ], - "pc:type": "lidar", - "proj:bbox": [ - 498065.0, - 7050992.84, - 74.46, - 498067.39, - 7050995.83, - 74.91 - ], - "proj:geometry": { - "coordinates": [ - [ - [ - 498065.0, - 7050992.84, - 74.46 - ], - [ - 498065.0, - 7050995.83, - 74.46 - ], - [ - 498067.39, - 7050995.83, - 74.91 - ], - [ - 498067.39, - 7050992.84, - 74.91 - ], - [ - 498065.0, - 7050992.84, - 74.46 - ] - ] - ], - "type": "Polygon" - }, - "proj:wkt2": "" - }, - "links": [], - "assets": { - "data": { - "href": "./1-0.copc.laz", - "roles": [ - "data" - ] - }, - "overview": { - "href": "./new-combined-overview.copc.laz", - "roles": [ - "overview" - ] - } - } - }, - { - "type": "Feature", - "stac_version": "1.0.0", - "stac_extensions": [ - "https://stac-extensions.github.io/pointcloud/v1.0.0/schema.json", - "https://stac-extensions.github.io/projection/v1.1.0/schema.json" - ], - "id": "1-1.copc", - "geometry": { - "coordinates": [ - [ - [ - 498065.01, - 7050995.9, - 74.34 - ], - [ - 498065.01, - 7050997.04, - 74.34 - ], - [ - 498067.32, - 7050997.04, - 80.02 - ], - [ - 498067.32, - 7050995.9, - 80.02 - ], - [ - 498065.01, - 7050995.9, - 74.34 - ] - ] - ], - "type": "Polygon" - }, - "bbox": [ - 498065.01, - 7050995.9, - 74.34, - 498067.32, - 7050997.04, - 80.02 - ], - "properties": { - "datetime": "2024-10-18T00:00:00Z", - "pc:count": 38, - "pc:encoding": "?", - "pc:schemas": [ - { - "name": "X", - "size": 8, - "type": "floating" - }, - { - "name": "Y", - "size": 8, - "type": "floating" - }, - { - "name": "Z", - "size": 8, - "type": "floating" - }, - { - "name": "Intensity", - "size": 2, - "type": "unsigned" - }, - { - "name": "ReturnNumber", - "size": 1, - "type": "unsigned" - }, - { - "name": "NumberOfReturns", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanDirectionFlag", - "size": 1, - "type": "unsigned" - }, - { - "name": "EdgeOfFlightLine", - "size": 1, - "type": "unsigned" - }, - { - "name": "Classification", - "size": 1, - "type": "unsigned" - }, - { - "name": "Synthetic", - "size": 1, - "type": "unsigned" - }, - { - "name": "KeyPoint", - "size": 1, - "type": "unsigned" - }, - { - "name": "Withheld", - "size": 1, - "type": "unsigned" - }, - { - "name": "Overlap", - "size": 1, - "type": "unsigned" - }, - { - "name": "ScanAngleRank", - "size": 4, - "type": "floating" - }, - { - "name": "UserData", - "size": 1, - "type": "unsigned" - }, - { - "name": "PointSourceId", - "size": 2, - "type": "unsigned" - }, - { - "name": "GpsTime", - "size": 8, - "type": "floating" - }, - { - "name": "ScanChannel", - "size": 1, - "type": "unsigned" - }, - { - "name": "Red", - "size": 2, - "type": "unsigned" - }, - { - "name": "Green", - "size": 2, - "type": "unsigned" - }, - { - "name": "Blue", - "size": 2, - "type": "unsigned" - } - ], - "pc:type": "lidar", - "proj:bbox": [ - 498065.01, - 7050995.9, - 74.34, - 498067.32, - 7050997.04, - 80.02 - ], - "proj:geometry": { - "coordinates": [ - [ - [ - 498065.01, - 7050995.9, - 74.34 - ], - [ - 498065.01, - 7050997.04, - 74.34 - ], - [ - 498067.32, - 7050997.04, - 80.02 - ], - [ - 498067.32, - 7050995.9, - 80.02 - ], - [ - 498065.01, - 7050995.9, - 74.34 - ] - ] - ], - "type": "Polygon" - }, - "proj:wkt2": "" - }, - "links": [], - "assets": { - "data": { - "href": "./1-1.copc.laz", - "roles": [ - "data" - ] - }, - "overview": { - "href": "./new-combined-overview.copc.laz", - "roles": [ - "overview" - ] - } - } - } - ] -}