2015-06-10 66 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