文档章节

Arcpy实现Geometry转换成WKT

我爱猕猴桃
 我爱猕猴桃
发布于 2017/07/28 13:49
字数 263
阅读 19
收藏 0

Well-known text(WKT) is a text markup language for reprensenting vector geometry objects on a map, spatial reference systems of spatial objects and transformations between spatial refrence systems. A binaru equivalent, known as well-known binary(WKB), is used to transfer and store information on databases.

运行环境:

ArcGIS 10.4

        
import os
import arcpy
import traceback
import time


def GetNowTime():
    return time.strftime("%Y-%m-%d %H:%M:%S")


def main():
    
    filePath = raw_input("Please input the filePath: ").lstrip()
    while not os.path.exists(filePath):
         filePath=raw_input("Please input a valid filePath: ").lstrip()          
    print "Start at",GetNowTime()
    
    #read all .mdb
    for sub ,mid ,fnames in os.walk(filePath):
        try:
            for fname in fnames:
                if os.path.splitext(fname)[-1] == ".mdb":
                    try:
                        arcpy.env.workspace = os.sep.join([sub,fname])
                        #print arcpy.env.workspace ,"..."
                        
                        tabs =arcpy.ListFeatureClasses()
                        #print tabs
                        for tab in tabs:
                            #print tab,
                                          
                            fields = [f.name for f in arcpy.ListFields(tab)]
                            
                            if "WKB" not in fields :
                                arcpy.AddField_management(tab,"WKB","BLOB")
                                
                            with arcpy.da.UpdateCursor(tab,['SHAPE@','WKB']) as cursor:
                                for row in cursor:
                                    row[1]=row[0].WKB
                                    cursor.updateRow(row)
                            #print "next..."                                    
                    except arcpy.ExecuteError:
                            er = '\n----------error----------\n'
                            print er,arcpy.GetMessages(),er
                            continue
                        
        except:
            er = '\n----------Error----------\n'
            print er,arcpy.env.workspace,tab,er
            continue

    print "\nEnd at",GetNowTime()
                        

   
if __name__=="__main__":
    main()

 

做成插件运行时,以下语句报错:

if "WKB" not in fields :
    arcpy.AddField_management(tab,"WKB","BLOB")
                                

WKB字段创建后不能被读取,所以进行创建字段,但提示“WKB”字段已存在。原因未知。

作此记录。

© 著作权归作者所有

我爱猕猴桃
粉丝 0
博文 5
码字总数 1484
作品 0
长宁
私信 提问
利用st_geometry进行图形叠加分析--结合mybatis

在上一遍利用stgeometry进行图形叠加分析文章的基础上,结合mybatis操作stgeometry,主要简单实现一下三个功能:利用st_geometry两个表之间图形表的叠加分析、WKT与图形表的叠加分析、将WKT...

2016/11/21
290
0
利用st_geometry进行图形叠加分析

首先看一下st_geometry进行图形叠加分析语句: 该语句表示的是SOURCETABLE 表中OBEJCTID=18133的图形数据与TARGETTABLE 表中所有的图形数据进行叠加,最终返回的是存在叠加目标表(TARGETTAB...

2016/11/18
318
0
Bing Maps开发扩展:Oracle Spatial的空间数据渲染

Oracle Spatial的空间数据应用和微软SQL Server 2008的大同小异,SQL Server 2008提供了基于SQLCLR的编程支持,Oracle Spatial暂时还没有比较完善的组件支持。在实际开发应用中我们可以选择折...

beniao
2011/11/22
0
0
SQL Servr 2008空间数据应用系列五:数据表中使用空间数据类型

  友情提示,您阅读本篇博文的先决条件如下:   1、本文示例基于Microsoft SQL Server 2008 R2调测。   2、具备 Transact-SQL 编程经验和使用 SQL Server Management Studio 的经验。 ...

beniao
2011/02/22
0
0
MySQL gis数据处理

MySQL gis数据处理 X-Space2017-11-202 阅读 主要是坐标的处理,一般使用point类型即可(也可以用geometry类型)。直接读取这个类型的字段是原始的二进制,有以下几种转换方式(mysql函数) ...

X-Space
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部