How to create terrain files with txt DEM

I want to create terrain files with a *.txt file which has points like:

. I’ve tried to use ArcMap to transform it to *.tiif, but it can’t be tiled by Cesium Terrain Builder. So how can I show the points as terrain?

Have you tried uploading your GeoTIFF to Cesium ion (

Yes, and Cesium Ion logged “Terrain raster must contain a single band of floating point or integer elevations”, but I’m not sure how to create this type of Geotiff with ArcGIS or other tools

What format is the original text file in? What do the coordinates there represent? It looks like some kind of X/Y and height? If the converter you’re using can’t output a TIFF with a single band, you may be able to post process it with GDAL. I’m assuming it’s outputting the elevation value as RGB.

Can you let me know the asset ID of your attempt on Cesium ion?

115015 and 115018. They both showed “Terrain raster must contain a single band of floating point or integer elevations”,

Both of these assets are not single band images. The GeoTIFF you upload to Cesium ion has to be a single band (where the color represents the height).

What coordinate system is your source file in? You could try using QGIS or a command like suggested here with GDAL to generate the correct GeoTIFF:

The source file has no coordinate system, but I’ve create a new dem.tif with GDAL, but it still can’t work. Cesium Ion shows that “We’re having trouble with your data”, and the file’s asset ID is 116619.

That file is still invalid. It would help if you can share what software you’re using to view or export the source data. There must be a valid coordinate system for Cesium ion to place the terrain correctly on the globe.

Thank’s a lot. I’ve solved this problem with the correct coordinate system.

By the way, Could I show my own terrain while the Cesium World Terrain is still visible? Or they just can’t work together?

Glad to hear you’ve resolved it!

Absolutely - when you upload your terrain, you’ll see an option to select a base layer. Select “Cesium World Terrain” as the base layer and this will merge your terrain on top. Let me know if that works for you.

That works perfectly in Cesium Ion, but I want to achieve this function with my terrain from my own database instead of from Cesium Ion. Is that possible?

You’ll need to convert it to one of the terrain formats that CesiumJS supports (heightmaps or quantized mesh). Did you run into any issue with Cesium ion that prevents you from using it in your project?

Thank 's for your suggestion, I will attempt to archive that. Cesium Ion is awesome, but some of our data are too many or mustn’t be uploaded to extranet, so I need to use our own database to manage them.