ArcGIS如何利⽤已有坐标转成点(arcgis⽣成、python⽣成)
⽂章⽬录
前⾔
利⽤坐标转成点、线、⾯是很常规的⼀个操作,也是很必要的⼀个操作,同时也是⽐较繁琐的⼀个操作,如何让这个过程变得简单是需要考虑的事情。
⼀、经纬度坐标转点、线、⾯
(⼀)在excel对数据进⾏初始处理
我们拿到的坐标⼀般都是经纬分秒制的,需要进⾏⼀下转换,变为10进制的,可以在excel⾥⾯来完成。在wps中可以利⽤ctrl+E(智能填充,根据前⾯的值,推测你后⾯需要的,坐标是度分秒时,我们需要把度分秒各⾃提取出来,⽐如说度,我只要在第⼀⾏填写第⼀⾏坐标对于的度,然后在第⼆⾏ctrl+E,就可以得到数据表中所有坐标的度,同理适合于分和秒),填充加快转换效率。(同时也要仔细检查⼀下,也可能wps识别错误)。
对数据进⾏处理后要把⽂件另存为xls格式的,因为对于xlsx的数据ArcGIS处理起来会有问题。
(⼆)在ArcGIS中对数据进⾏⽣成
1.⽣成点
添加数据
先设置经度再设置纬度,设置地理坐标系统,经纬度转点的话⽤地理坐标系统,后⾯要投影的话再可以投影坐标,有些 时候如果位置不对请检查经纬度是不是位置弄反了,如果还有问题的话,可以在⼀个空⽩的⼯作空间中进⾏转换,因为旧的⼯作空间中有临时投影可能会导致数据转换出问题。
在这⾥是地理坐标系统,后期如果需要的话可以进⾏投影,⼀般来说就是⽤地理坐标系统进⾏分析的话也没什么很⼤的问题。
2.⽣成线
将点转换成线。
3.⽣成⾯
将线转换成⾯。
⼆、利⽤坐标点直接转换为点、线、⾯
(⼀)把数据添加excel表格中
直接输⼊坐标点。
(⼆)在ArcGIS中对数据进⾏⽣成
1.⽣成点
与前⾯利⽤经纬度类似,但要设置投影坐标系统。
2.⽣成线
(1)⼿动连接
点连点成线。
(2)利⽤点转线⼯具⽣成
注意:点转线的顺序按照排列顺序的,如果没有设置好顺序的话,线就会打结。
3.⽣成⾯
线转换成⾯。
三、其他⽅法
(⼀)利⽤arcpy⽣成
1.⽣成点
points是⼀个列表,如果是要⽣成很多的点的话,可以利⽤python直接读取⽂件⽣成列表。
# -*- coding: utf-8 -*-
import arcpy
points =[[1111,1112],[1111,1133]]#表⽰坐标点
sp=arcpy.SpatialReference(4326)#数字代表坐标系统WGS-84
path ="D:\work file\STUDY DATA\Folder"#设置⽂件⽣成路径
filename = 'points.shp'
fc = path +"\\"+ filename
arcpy.CreateFeatureclass_management(path, filename, 'POINT', '', '', '', sp) arcpy.AddField_management(fc,"FIDX", 'TEXT',50)
python怎么读取桌面上的文件cursor = arcpy.InsertCursor(fc)
# ---------------
index =0
for pt in points:
point = arcpy.Point()
point.X = pt[0]
point.Y = pt[1]
row = wRow()
row.shape = point
row.FIDX = index
cursor.insertRow(row)#将记录插⼊到属性表⾥⾯
index = index +1
print('finsh')
2.⽣成线
# -*- coding: utf-8 -*-
import arcpy
import xlwt
sp = arcpy.SpatialReference(4326)
path ="D:\work file\STUDY DATA\Folder"
filename = 'line.shp'
fc = path +"\\"+ filename
arcpy.CreateFeatureclass_management(path, filename, 'POLYLINE', '', '', '', sp) arcpy.AddField_management(fc,"DLMC", 'TEXT',50)
cursor = arcpy.InsertCursor(fc)
poylinePts =[[[111,112],[115,119]],[[150,159],[160,172]]]
index =0
for coord in poylinePts:
array = arcpy.Array()
for pt in coord:
point = arcpy.Point()
point.X = pt[0]
point.Y = pt[1]
array.add(point)
polyline = arcpy.Polyline(array)
row = wRow()
row.shape = polyline
row.DLMC = index
index +=1
cursor.insertRow(row)
print 'finshed'
3.⽣成⾯
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论