Comments (17)
The problem can be reproduced by using TrueMarble.32km.1350x675.tif, which can be downloaded from http://www.unearthedoutdoors.net/global_data/true_marble/download. We are not using this raster. Our raster(DNSC08BAT_2min_rs.nc) is too big to be attached here.
And it seemed that the number of files/folders created is incorrect for global map(-180, 90, 180, -90). For example, on level 0, according to https://cesiumjs.org/data-and-assets/terrain/formats/heightmap-1.0.html, there should be two folders with one file in earch folder. But the terrain build created 3 folders with 2 files in each folder for me. The problem can be workarounded by changing the map to (-180, 89.99, 179.99, -90). The black gap is always there no matter I apply the workaround or not.
I am guessing maybe the black gap is because the rightmost tiles need to overlap the leftmost tiles in a global map.
from cesium-terrain-builder.
We were using docker https://registry.hub.docker.com/u/homme/cesium-terrain-builder/
from cesium-terrain-builder.
Thank you for the comprehensive bug report. I have only used CTB for small areas and not global datasets, so you are a traversing new territory! I have a feeling that your guess that the gap is to do with a problem with the overlaps at the antimeridian is correct. The first place in the code to investigate is this function.
Are you using ctb-tile
to generate both the overlay imagery tiles as well as the terrain tiles or do the overlay tiles come from a different source? If the imagery tiles are also created by ctb-tile
there is a chance that the problem is manifested in both output tilesets.
I am guessing you are visualising the new gravity model from the Cryosate-2 data? If so cool!
I am busy preparing for a week abroad next week so unfortunately will likely not be able to look into this problem before my return. If you are keen to get it prioritised then we are open to getting the work funded and, of course, will gladly accept code contributions.
from cesium-terrain-builder.
Thanks Homme. We were using gdal2tiles.py for imagery tiles, which is working fine. We only used ctb-tile for terrain tiles.
Yes, we are visualising the new model in the recent Science paper. Here is the link if you are interested http://portal.gplates.org/cesium/. Currently, we are using the terrain data from http://www.vr-theworld.com/. But it does not suit our purpose very well. We need to use our own terrain data instead. I think the ctb-tile is very good. Once we fixed the "black gap", we will switch to our own terrain tiles.
from cesium-terrain-builder.
@michaelchin Are you able to use the latest version of master (commit ba59bba at the moment) to check whether the "black gap" problem has been resolved? There have been a couple of changes committed recently which may fix that particular issue. If it has not been resolved are you able to provide a minimal DEM dataset which replicates the problem?
The issue of there being three directories created under the top level 0
folder is a separate problem, and fairly harmless. As you found out it is caused by a very slight overlap across the date line and/or poles. Cropping the DEM to be absolutely no greater than -180, 90, 180, -90
should solve the problem.
from cesium-terrain-builder.
I've just remembered you are using the docker image, in which case doing a docker pull homme/cesium-terrain-builder
should provide you with the latest code.
from cesium-terrain-builder.
Thanks Homme. I will try it later. A project review meeting is coming soon. I am quite busy right now.
from cesium-terrain-builder.
@michaelchin @homme I met the same issue. Have you solved the issue? I try to develop a server to visualize the bathymetry data. There is something wrong with the visualization outcome. The seabed is higher than the land. Do you know why? I don't know if Cesium works well on visualizing terrain underwater.
from cesium-terrain-builder.
@ethan0911
I am pretty sure that the Cesium can handle negative height data(seabed). Here is a working example http://portal.gplates.org/cesium/?view=topo15 .
I think you might want to check your terrain data. It seems to me that your seabed height is not negative. Is it possible you are using unsigned integer?
from cesium-terrain-builder.
@michaelchin thank you for your reply. yeah, your work inspires me. I used the bathymetric data which can be accessed http://www.marine-geo.org/tools/GMRTMapTool/.
I test with this terrain tile:
it shows that the altitude in the sea is negetive when I load the data in QGIS.
However, I also try to debug and inverse the raw data. Here is the result:
it seems that the visualization of seabed is correct. However, there are lots of gaps on the land. Do u know any possible reason?
from cesium-terrain-builder.
@michaelchin you mean the data value in the raw tif is unsigned integer?
May I use your terrain data to test the code? the link [http://www.unearthedoutdoors.net/global_data/true_marble/download] doesn't work.
from cesium-terrain-builder.
@michaelchin I check the source file. I found that @homme use uint16_t to store the height. I wonder if the integer is cast to unsigned integer?
types.hpp
typedef uint16_t i_terrain_height; ///< A terrain tile height
TerrainTile.hpp
protected:
/// The terrain height data
std::vector<i_terrain_height> mHeights; // replace with std::array
in C++11
from cesium-terrain-builder.
@ethan0911
I am using the grid from here ftp://topex.ucsd.edu/pub/srtm15_plus/.
If the height data is stored in uint16, there might be a problem.
The original problem in this ticket is due to the overlap pixel at the boundary of tiles.
If you have time, I suggest you read this paper http://journals.plos.org/plosone/article?id=10.1371%2Fjournal.pone.0150883 .
The technical details are in the supplementary section. I ended up using my own scripts to create the tiles to suit my purpose.
from cesium-terrain-builder.
@michaelchin May I talk to on hangout?
from cesium-terrain-builder.
@ethan0911
The work has been done more than one year ago. I can hardly remember any details. I don't think it would be effective to have a talk because it is very likely that I have to check the paper each time you ask me something. I have written down everything in the paper. And it might take weeks to have everything sorted out.
from cesium-terrain-builder.
@ethan0911 I meet the same problem with you. I used the data from ftp://topex.ucsd.edu/pub/srtm15_plus/ provided by @michaelchin and created the terrain tiles using the script athttp://journals.plos.org/plosone/article?id=10.1371/journal.pone.0150883
. Have you resolved this issue? If so, would give me some help?
from cesium-terrain-builder.
from cesium-terrain-builder.
Related Issues (20)
- Error tiling with output format set to Leveller
- Can't change terrain tile size from 65x65 to 256x256
- GDALOpenEx - not found Windows build HOT 1
- ctb.dll not found Windows HOT 2
- Trouble building with CMAKE: GDAL not found
- ERROR 1: PROJ: webmerc: Invalid latitude HOT 1
- Resume is not a valid parameter anymore
- quantized-mesh tiles has no “metadata” extension HOT 5
- empty tiles
- undefined reference to `GDALCreateOverviewDataset(GDALDataset*, int, int)' HOT 10
- why cesium can not display the terrain? HOT 5
- Terrain pyramid getting created outside of dataset bounds HOT 1
- The command line ran successfully, but was not generated file "layer.json"? HOT 1
- Error while running make install HOT 4
- Cesium Terrain generated using DSM is way higher than the base map
- Cesium is not rendered after reaching level 4 terrain HOT 1
- Can not add the terrain data in cesium HOT 17
- Possibility to merge several regions with different resolutions? HOT 1
- Tile coordinates are not consistent with Google or TMS standard
- @alienatorZ , @aberenyi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cesium-terrain-builder.