2015-06-10 108 views
0

我一直在處理涉及大型heightmaps(3000x3000〜60MB)的項目。 。我需要做的是將數據拆分成幾個200x200陣列(其中15x15),然後單獨保存(但這次的格式儘可能快以再次加載)。我嘗試過使用流(我不擅長C++,所以不排除流的想法),但它的速度很慢。將文本文件快速轉換爲數組C++

可能有幫助的東西(根據我在搜索答案時看到的內容): 高度圖以文本文件(.asc)形式提供,數字寫爲「125.123」,但沒有「」。無論數字是什麼(「0.123」和「100.123」),每個條目都有三位小數。據我所知,沒有負數,事先知道高度圖的大小(通常爲3000x3000)。

所以我的問題主要有:

  1. 最新最好的方式做到這一點? (最好沒有提升或如此,但如果它幫助很多,那麼爲什麼不)
  2. 什麼格式(對於200x200陣列)將允許最快的加載時間?

任何幫助,想法,代碼或鏈接/ litterature?

+0

這樣做容易得多在Python中。爲什麼選擇C++? – Bharadwaj

+0

通常的瓶頸是磁盤。加載的最佳格式通常是最小的。他們加載速度有多快? – JCx

+0

您的意思是「000.123」而不是「0.123」?如果沒有,我不明白你的意思是3位小數 – user463035818

回答

1

部2

如果正在閱讀的文件返回到相同類型的系統(字節序)的然後使用二進制blittable格式。即存儲200 * 200陣列的直接二進制轉儲。我還會乘以1000並存儲爲整數,因爲它們通常稍微快一點(您沒有提到值的範圍,也沒有提到精度,單位是英尺,英里,納米?)

+0

它是一個真實世界的高度圖,範圍通常在0-500之間。感謝您的提示,我會研究這一點! – maxx