Data Story
We took the High-resolution depth model for the Great Barrier Reef provided by GeoScience Australia. This dataset was extremely large (>42GB) and it had data points every 30 metres.
Strangely, this data also included many readings that were on land (with negative depth values) so we made sure to exclude these irrelevant values. The dataset was still so huge and unwieldy, so for our project we narrowed it down to particular longitude and latitude range (still representing thousands of square kilometers). We then stripped out the longitude and latitude values and provided a CSV file of depth values to be parsed by C# code running in the Unity Editor. Our Unity script would then encode these depth values into a square texture, which can be read by Unity's terrain system as a heightmap. Vertices on a plane would be raised or lowered based on the heightmap data, giving us an easy way to replicate the seafloor depth data in-engine. There was a resolution limit of 4096x4096, meaning we could represent 16777216 data points from the original dataset using one Unity terrain object. The dataset had well over a billion data points but this is plenty for the Unity engine to handle. We used a 2048x2048 heightmap texture for our demo video. If we were to expand on this, we could theoretically represent the entire Great Barrier Reef in-engine, just not all at once due to memory limitations. This project was a fun technical challenge and gave us a fascinating new way to look at mapping data.