I'm creating a 3D game where I have a large open world (200×200 kilometers), that uses a heightmap. I divide the heightmap in 200×200 = 40,000 regions of 1000×1000 meter, and those are again divided in 20×20 = 400 chunks of 50×50 meter. The heightmap is generated from a PNG file.
I am thinking about ways of storing the terrain. I have tried something, but it generates files of about 16MB per region, which is 640GB for the whole world (40,000 regions).
An example of a region-file can be found here: http://updo.nl/file/e10ce974.umap
My question: how can I compactly store so much information in region files and read them later?