Python中建立一个一个与DSM大小相同的格网矩阵来储存DSM中各个格网点的可见性
时间: 2024-05-10 18:20:26 浏览: 10
您可以使用Numpy库来建立一个与DSM大小相同的格网矩阵来储存DSM中各个格网点的可见性。以下是一个简单的代码示例:
```python
import numpy as np
# 假设DSM大小为10x10
dsm = np.zeros((10, 10))
# 创建一个与DSM大小相同的格网矩阵来储存可见性
visibility_matrix = np.zeros((10, 10))
# 对于每个格网点,检查其与其他所有格网点的可见性,更新可见性矩阵
for i in range(10):
for j in range(10):
for k in range(10):
for l in range(10):
if i == k and j == l:
continue
if dsm[k, l] > dsm[i, j]:
visibility_matrix[i, j] = 0
break
else:
visibility_matrix[i, j] = 1
# 可以使用以下代码将可见性矩阵保存为CSV文件
np.savetxt("visibility_matrix.csv", visibility_matrix, delimiter=",")
```
这个示例代码中,我们首先创建一个大小为10x10的全0的DSM矩阵。然后,我们创建一个大小相同的全0可见性矩阵。接下来,我们使用四个嵌套的循环遍历每个格网点,并检查其与其他所有格网点的可见性。如果一个点的高度低于另一个点,则说明该点不可见。我们使用一个0或1的值来表示每个格网点的可见性,并将其存储在可见性矩阵中。最后,我们使用Numpy的savetxt函数将可见性矩阵保存为CSV文件。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)