mattshax / cesium_pnt_generator Goto Github PK
View Code? Open in Web Editor NEWConvert lidar las datasets into Cesium pnts 3d-tiles.
Convert lidar las datasets into Cesium pnts 3d-tiles.
What Cesium version have you bundled into the viewer there?
Hello Matthew,
thank you for your code. I'm trying to visualize my terrestrial laser-scanner data in Cesium. I used your code to create the tileset. Everything looks good, the JSON and PNTS files get created. I have some issues using your viewer though. It gets loaded, but I can't see my data. I tried to view the sample data of the stadium, but that doesn't work well either. The point cloud is visible only from certain angles, the base layer won't load etc. So I'm not sure if it's an issue of the viewer, or my data..
I tried to load the tiles in Cesium Sandcastle using the template https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=3D%20Tiles%20Point%20Cloud.html, but I'm getting an error message:
"A 3D tile failed to load: /scan-0001.pnts?v=0.0
Error: Unexpected token � in JSON at position 0"
I ran the JSON file through a validator and it seems to be ok.
I'm running the code on Windows 10 with subsystem for Linux, if that's relevant.
Could you help me figure out, what I'm doing wrong?
Thanks
I have a lidar file (file.las) with the following spatial reference:
PROJCS["WGS84 / UTM zone 43N",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9108"]],AUTHORITY["EPSG","4326"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",75],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["Meter",1],AUTHORITY["EPSG","32643"]]
I am trying to convert .las file into .pint files but getting error: X scale and offset combination is insufficient to represent the data
Here is the stack trace
splitting las file
s-0001 - processing
s-0001 - attaching color to file
s-0001 - exporting color information
s-0001 - transforming las projection
error: X scale and offset combination is insufficient to represent the data
s-0001 - exporting points
Cannot open tmp/p.las for read. Exiting...
processing points tmp/p.txt
processing colors tmp/c.txt
writing to viewer/data/s-0001
reading points file
fs.js:432
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory 'tmp/p.txt'
at Object.fs.openSync (fs.js:432:18)
at Object.fs.readFileSync (fs.js:286:15)
at Object.<anonymous> (/home/test/cesium_pnt_generator/RTC.js:19:17)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
Can you please help me how can I fix this issues.
Hi Matthew,
Thanks again for sharing your code. I managed to make it run perfectly to convert .las
data and .xyz
data on both Linux
and Windows
system now for our project.
But when I tried to host them on IIS server
instead of on NodeJS
, it doesn't load .pnts
files anymore.
I have edited the web.config
file as following:
<configuration>
<system.webServer>
<staticContent>
<remove fileExtension=".json" />
<mimeMap fileExtension=".json" mimeType="application/json" />
<remove fileExtension=".pnts" />
<mimeMap fileExtension=".pnts" mimeType="application/octet-stream" />
</staticContent>
</system.webServer>
</configuration>
So there is no error messages to serve .pnts
or .json
files.
But the console log showed that selectedTiles:Array(0)
instead of selectedTiles:Array(1)
. That means the .json
file has been loaded but .pnts
file has not.
I also checked the Cesium.js
source code which you implement the Cesium3DTileset
constructor. But it seems like the code is server-agnostic.
This problem has been bothered me many days and if you could help, I would appreciate A LOT!
Hi Matthew,
Thanks for sharing your code. I use this tool according to your tutorial:
git clone https://github.com/mattshax/cesium_pnt_generator.git
cd cesium_pnt_generator/viewer
npm install
npm start
navigate to http://localhost:3000/ to view the Cesium point cloud data.
however ,The page only shows ‘stadium_all-0001.pnts’ ,those in 'children' were not shown,such as 'stadium_all-0002.pnts'.
Picture below only shows ‘stadium_all-0001.pnts’ :
Why others data could not shown in http://localhost:3000/? How to solve this problem?
Hello Matt,
I hope all is well.
Would you please provide another link for downloading the dataset?
It seems this link is not working -> https://s3-us-west-2.amazonaws.com/s3.parallel.works/sample_lidar_data.tgz
Thank you
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.