以下是在 ArcPy 中批量对 Excel 经纬度 L 进行投点,设置为 WGS84 坐标系,并利用该点计算每个区域内的核密度的详细步骤:
1. 准备数据:
准备包含经纬度信息的 Excel 数据表格,我们假设文件路径为 "C:/Data/locations.xlsx",Sheet 名称为 "Sheet1",且包含列名为 "lat" 和 "lon" 表示纬度和经度。
2. 设置矢量数据存储位置:
将经过处理后的点图层存储到矢量数据中,需要先设置工作空间(geodatabase)。
```
import arcpy
from arcpy import env
env.workspace = "C:/Data"
```
3. 读取 Excel 数据:
使用 Pandas 模块中的 read_excel() 方法从 Excel 数据表中读取数据,创建一个包含所有经纬度信息的 DataFrame 对象。指定了“L”为Lat字段,“W”为等经线字段,并且筛选出具有非空经纬度信息的地点。
```
import pandas as pd
df = pd.read_excel("locations.xlsx", sheet_name="Sheet1")
df = df[['L', 'W']]
df.dropna(inplace=True) # 仅保留不缺失的数据
```
4. 投点到 WGS84 坐标系:
使用 MakeXYEventLayer 工具将 Excel 文件中的经纬度数据投影成点,以便于之后进行空间分析,这里我们将点投影到 WGS84 坐标系中,使用了 "WGS 1984" 作为坐标系。
```
sr = arcpy.SpatialReference(4326) # WGS84坐标系的空间参考ID
eventLayer = arcpy.MakeXYEventLayer_management(df, 'W', 'L', "EventLayer", sr)
arcpy.CopyFeatures_management(eventLayer, "points.shp")
```
5. 利用点计算每个区域内的核密度:
通过 Spatial Analyst 模块计算矢量数据内每个区域的核密度,并将结果保存到输出文件夹 "C:/Data/Output" 中。
```
from arcpy.sa import *
arcpy.CheckOutExtension("Spatial")
input_point_features = "points.shp"
output_folder = "C:/Data/Output"
# Set Local Variables
outKernelDensity = KernelDensity(input_point_features, "NONE", 0.01, 50, "SQUARE_KILOMETERS")
# Save the output
outKernelDensity.save(output_folder + "/density.tif")
print("Density file has been created.")
```
以上就是在 ArcPy 中批量对 Excel 经纬度 L 进行投点,设置为 WGS84 坐标系,并利用该点计算每个区域内的核密度的详细步骤。