我必须阅读代表地图的csv文件。
我的csv是这样的(数据片段):
"","x","y","sim1","sim2","sim3","sim4","sim5","sim6","sim7","sim8","sim9","sim10","sim11","sim12"
"1",181180,333740,5.56588745117188,6.29487752914429,7.4835410118103,5.75873327255249,6.62183284759521,5.81478500366211,4.85671949386597,5.90418815612793,6.32611751556396,6.99649047851562,6.52076387405396,5.68944215774536
"2",181140,333700,6.36264753341675,6.5217604637146,6.16843748092651,5.55328798294067,7.00429201126099,6.43625402450562,6.17744159698486,6.72836923599243,6.38574266433716,6.81451606750488,6.68060827255249,6.14339065551758
"3",181180,333700,6.16541910171509,6.44704437255859,7.51744651794434,5.46270132064819,6.8890323638916,6.46842670440674,6.07698059082031,6.2140531539917,6.43774271011353,6.21923875808716,6.43355655670166,5.90692138671875
第一列显示了我有多少对x / y坐标,其中x和y是经度/纬度,即simN,它是模拟#N的属性值。
使用d3,我可以快速阅读此csv并将其显示为它代表的地图:
d3.csv("https://dl.dropboxusercontent.com/u/11442023/Geostatistic/sim100.csv", function(error, data) {
if (error) { //If error is not null, something went wrong.
console.log("Error loading sim100 data.");
console.log(error); //Log the error.
} else { //If no error, the file loaded correctly. Yay!
console.log("Data sim100 loaded successfully!");
//Include other code to execute after successful file load here
simulationDataset = data;
scaleX = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.x;}), d3.max(simulationDataset, function(d) { return d.x; })]);
scaleY = d3.scale.linear().domain([d3.min(simulationDataset, function(d) {return d.y;}), d3.max(simulationDataset, function(d) { return d.y; })]);
}
});
我已经将其保存在一个numpy数组中:
np.loadtxt("Data/sim.csv", delimiter=',', usecols=range(1,4), skiprows=1)
在Python中,我不知道该如何实现。此外,除了绘制地图进行仿真之外,我还必须保存一个矩阵,以便将来进行工作。但是,由于x和y是经度/纬度,所以我没有像(0,0)(0,1)(0,2)这样的点,即像简单矩阵一样。但是我不知道是否有像我上面提到的那样可以扩展域。
我考虑过要找到最大/最小纬度和经度来定义矩阵的大小,然后他们进行演算以使每对经度/纬度都适合此结构。但这对我来说似乎不是一个好方法,并且我已经看到了Python可以做的一切,我想这是一个更好的解决方案。
我最想知道的是是否存在一个“魔术”函数来将该数据保存在一个有意义的矩阵中(对所有经度/纬度索引进行转换并将该值保存在该矩阵中)还是我必须做我想做的事情,找到最小/最大并进行翻译。
提前致谢。
最佳答案
您应该能够轻松地编写一些东西,以解析该CSV并将数据输入到numpy数组中。 Numpy是用于科学数据计算的最常见模块之一。从那里,您可以使用matplotlib或mayavi提供数据的图形表示。