日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python2利用wxpython生成投影界面工具的圖文詳解

瀏覽:31日期:2022-06-21 17:30:32

本投影界面工具的功能:

準備好.prj投影文件,將輸入文件夾內的WGS84經緯度坐標shp文件,投影為平面文件,成果自動命名為prj_***并新建在輸入文件夾同一路徑下。

下一步目標:

利用pyinstaller或其他打包庫生成exe文件,目前停滯在python2語法、arcpy打包出錯相關問題上。

參考文獻:

《Using Py2exe with Arcpy- It can be done easily!》

《如何使用py2exe打包arcpy腳本?》

GUI界面示意圖

python2利用wxpython生成投影界面工具的圖文詳解

投影文件所在文件夾結構如下:

python2利用wxpython生成投影界面工具的圖文詳解 python2利用wxpython生成投影界面工具的圖文詳解

GUI代碼

# -*- coding: utf-8 -*-# =============================================================================# 輸入文件——點選、復制、拖拽# 選擇待投影的文件夾、投影文件所在文件夾# ============================================================================='''Created on Thu Feb 4 16:12:00 2021@author: zhutong''' import wxfrom Def_Projection_common_E import createPrjFile,projection#創建應用程序對象app = wx.App() #自定義窗口類MyFrameclass MyFrame(wx.Frame):def __init__(self):super(MyFrame,self).__init__(None,title='通用經緯度轉平面坐標工具',pos=(600,500),size=(600,300))#Python2語法panel = wx.Panel(parent=self)#創建面板對象self.statictext_shp = wx.StaticText(parent=panel,label='待投影數據所在文件夾',pos=(60,30))#創建靜態文本對象self.statictext_shp = wx.StaticText(parent=panel,label='投影文件所在文件夾',pos=(60,80))#創建靜態文本對象 self.shp_text = wx.TextCtrl(parent=panel,value='',pos=(60,50),size=(350,25))#【文本控件1】open_shp_button = wx.Button(parent=panel, label=’打開’,pos=(430,50))#【按鈕控件1】 self.prj_text = wx.TextCtrl(parent=panel,value='',pos=(60,100),size=(350,25))#【文本控件2】open_prj_button = wx.Button(parent=panel, label=’打開’,pos=(430,100))#【按鈕控件2】projection_button = wx.Button(parent=panel, label=’平面投影’,pos=(150,150),size=(180,30))#【按鈕控件3】self.Bind(wx.EVT_BUTTON, self.onButton_opendir, open_shp_button)#綁定事件1——打開文件夾self.Bind(wx.EVT_BUTTON, self.onButton_opendir, open_prj_button)#綁定事件2——打開文件夾self.Bind(wx.EVT_BUTTON, self.onButton_projection, projection_button)#綁定事件3——投影 self.Bind(wx.EVT_TEXT, self.inputText, self.shp_text)#綁定事件4——直接在文本框輸入路徑 self.Bind(wx.EVT_TEXT, self.inputText, self.prj_text)#綁定事件4——直接在文本框輸入路徑 def onButton_opendir(self,control):#在事件源(控件)上產生特定事件(左鍵單擊)后的處理程序# Create open file dialogopenDirDialog = wx.DirDialog(parent=self, message='選擇一個文件夾', defaultPath='', style=wx.DD_DEFAULT_STYLE) openDirDialog.ShowModal()self.path = openDirDialog.GetPath()print(self.path)openDirDialog.Destroy()control.SetValue(self.path)#將路徑顯示在文本框1中 def inputText(self,control):self.path = control.GetValue() def onButton_projection(self,event):inWorkspace = self.shp_text.GetValue()prjdir = self.prj_text.GetValue()prjWorkspace = createPrjFile(inWorkspace,add_str='prj_')#新建投影成果根目錄prjWorkspaceprojection(inWorkspace,prjdir,prjWorkspace) if __name__ == '__main__': # #創建窗口對象 frm = MyFrame() # #顯示窗口 frm.Show() #進入主事件循環 app.MainLoop()

功能正確,但提示有冗余報錯

python2利用wxpython生成投影界面工具的圖文詳解

平面投影代碼

# coding=utf-8# ---------------------------------------------------------------------------## 為文件夾內所有城市的經緯度shp生成對應的平面shp# 注意文件夾內所有路徑須為英文路徑,python2## ---------------------------------------------------------------------------#注意西安和香港import arcpyimport os,reimport time#os,arcpy文件覆蓋寫arcpy.env.overwriteOutput = True #啟用覆蓋地理處理操作的輸出 inWorkspace = r’D:PythonCode_E3DCM01Data04BackPoiProcess02POIPOI_4’#待投影根目錄【運行前確認修改!】prjdir = r’D:PythonCode_E3DCM01DataprjFile’#投影文件所在路徑 ##判斷是否為shp文件def isShapefile(file_name): if '.shp' in file_name and '.xml' not in file_name:flag = True else:flag = False return flag ##建立對應投影成果文件夾——絕對路徑中【葉子節點】文件夾前加'add_str'def createPrjFile(file_dir,add_str): dir_name,base_name = os.path.split(file_dir)#如果路徑末有//,則輸出路徑和為空文件名 #print dir_name #print base_name prj_file_dir = os.path.join(dir_name,add_str + base_name) if os.path.exists(prj_file_dir) == False:os.mkdir(prj_file_dir) print prj_file_dir + u' 文件夾新建成功!' return prj_file_dir #返回一個文件在投影文件列表中匹配的投影文件def prjMatch(shp_dir,prjdir):#shp_dir最好為絕對路徑,1文件夾或2文件名匹配投影文件均可行 #打印作為參數輸入的shp路徑 print 'nshp_dir:n' + shp_dir.lower() prjfile_ls = os.listdir(prjdir) #city_ls = [i.replace(suffix,'') for i in os.listdir(prjdir)]#檢查城市名是否有包含的情況,如香港xinggang包含西安xian for prjfile in prjfile_ls: suffix = '.prj'city = prjfile.replace(suffix,'')if city.lower() in shp_dir.lower(): print city #排除特殊城市西安xian【有錯誤!】 if ('xian' in shp_dir.lower()) and ('xianggang' not in shp_dir.lower()):print 'xian branch prj'return os.path.join(prjdir,'xian.prj')elif 'xianggang' in shp_dir.lower():print 'xianggang branch prj'return os.path.join(prjdir,'xianggang.prj') else:#忽略shp_dir中城市名大小寫prjfile_dir = os.path.join(prjdir,prjfile)print 'Ordinary branch:n' + prjfile_dir + 'n'return prjfile_dir #else: #print 'prj match fail!'#如果列表中的元素是字符串,判斷任一元素不被包含在其他元素中 num_shp = 0num_shp_ok = 0num_shp_fail = 0##針對文件夾內shp,建立對應所在投影文件夾、并投影#參數:inWorkspace待投影成果根目錄,ini_root(=inWorkspace)新建投影文件夾替換字符用def projection(inWorkspace,prjdir,prjWorkspace):#遞歸函數的參數只能是變量參數global num_shp global num_shp_ok global num_shp_fail file_names = os.listdir(inWorkspace) for file_name in file_names:#文件或文件夾名,不是絕對路徑file_dir = os.path.join(inWorkspace,file_name)#待投影文件的絕對路徑 if os.path.isdir(file_dir):#判斷是否為文件夾 #建立對應投影成果文件夾 prjSubfolder= file_dir.replace(inWorkspace,prjWorkspace) if os.path.exists(prjSubfolder) == False:os.mkdir(prjSubfolder) #inWorkspace = file_dir#將當前文件夾當作根目錄 projection(file_dir,prjdir,prjSubfolder)#遞歸 else: if isShapefile(file_name):print 'file_name:'+file_name#投影成果shp的絕對路徑prj_file_dir = file_dir.replace(inWorkspace,prjWorkspace)#print prj_file_dir#投影文件prj的絕對路徑prjfile_dir = prjMatch(file_dir,prjdir)#print prjfile_dir#如果投影成果不存在(6個文件),再投影try: arcpy.Project_management(file_dir, prj_file_dir, prjfile_dir) #prj_file_dir投影成果shp文件的路徑,prjfile_dir投影文件的路徑 num_shp_ok += 1 print file_dir + u'投影成功!'except: num_shp_fail += 1 print file_dir + u'投影失敗!' else:pass#print 'Srange ERROR in: '+file_dir print inWorkspace + u' 文件夾投影完成!'#注意不是局部變量inWorkspace print str(num_shp_ok) + u'shp文件投影成功!' print str(num_shp_ok) + u'shp文件投影失敗!' ## return pathsif __name__ == ’__main__’: time_start=time.time() prjWorkspace = createPrjFile(inWorkspace,add_str='prj_')#新建投影成果根目錄prjWorkspace projection(inWorkspace,prjdir,prjWorkspace) time_end=time.time() print u’投影耗時:{:.2f}min’.format((time_end-time_start)/60)

附錄:在python2中調試wxpython,界面一閃而過的解決辦法:

python2利用wxpython生成投影界面工具的圖文詳解

python2利用wxpython生成投影界面工具的圖文詳解

到此這篇關于python2利用wxpython生成投影界面工具的圖文詳解的文章就介紹到這了,更多相關python投影界面工具內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产视频一区三区| 亚洲欧美日韩国产一区二区| 婷婷五月色综合香五月| 美国欧美日韩国产在线播放| 夜夜嗨一区二区三区| 91精品在线观看国产| 蜜桃一区二区三区| 99国产精品自拍| 亚洲三级观看| 国产欧美一区二区三区精品观看| 麻豆精品在线视频| 福利片在线一区二区| 欧美日韩尤物久久| 午夜日韩av| 日韩成人午夜精品| 久久久久久亚洲精品美女| 精品久久一区| 四虎4545www国产精品| 好看的av在线不卡观看| 蜜桃av一区二区三区电影| 亚洲精品一二三**| 国产精品探花在线观看| 精品免费在线| 欧美+日本+国产+在线a∨观看| 老鸭窝亚洲一区二区三区| 亚洲麻豆一区| 精品国产三区在线| 久久理论电影| 在线观看亚洲精品福利片| 91精品国产经典在线观看| 国内精品伊人| 亚洲大全视频| 日韩av成人高清| 久久精品国产在热久久| 婷婷精品视频| 蜜臀va亚洲va欧美va天堂| 国产日产一区| 亚洲成人av观看| 亚洲精品裸体| 九九99久久精品在免费线bt| 亚洲二区在线| 国产欧美88| 99成人在线视频| 欧美日韩中出| 亚洲福利免费| 国产伦精品一区二区三区在线播放 | 香蕉久久久久久久av网站| 日本不卡视频在线| 日韩av二区| 亚洲风情在线资源| 亚洲精品三级| 中文字幕人成乱码在线观看| 蜜桃久久av| av资源中文在线天堂| 亚洲三级精品| 欧美不卡高清一区二区三区| 日本91福利区| 蜜桃tv一区二区三区| 老司机精品视频在线播放| av不卡免费看| 国产一区一一区高清不卡| 一本一本久久| 日韩88av| 日本午夜精品一区二区三区电影| 亚洲91视频| 美日韩一区二区三区| 午夜宅男久久久| 国产v综合v| 国产精品三级| 久久99伊人| 成人看片网站| 毛片不卡一区二区| 亚洲精品观看| 免费毛片在线不卡| 国产66精品| 国产精品中文字幕亚洲欧美 | 日韩精品永久网址| 日本视频一区二区| 蜜桃国内精品久久久久软件9| 欧美成人精品午夜一区二区| 亚洲黄页一区| 日韩一区二区中文| 国产精品chinese| 一区二区三区午夜视频| 久久三级视频| 国产精品yjizz视频网| 国产伦理久久久久久妇女| 免费看日韩精品| 亚洲国产综合在线看不卡| 成人台湾亚洲精品一区二区| 亚洲制服一区| 久久都是精品| 国产二区精品| 久久精品国产68国产精品亚洲| 美日韩一区二区三区| 日本成人手机在线| 丝袜亚洲精品中文字幕一区| 欧美日韩国产传媒| 四虎884aa成人精品最新| 精品久久在线| 国产精品欧美日韩一区| 日韩在线成人| 爽好久久久欧美精品| 欧美中文一区二区| 日韩精品久久久久久久电影99爱| 国产欧美自拍| 91精品国产经典在线观看| 亚洲精品极品| 综合一区二区三区| 视频一区欧美日韩| 首页国产欧美久久| 老鸭窝毛片一区二区三区| 亚洲女人av| 一区二区三区四区精品视频| 免费久久99精品国产自在现线| 激情欧美日韩一区| 999国产精品999久久久久久| 日本欧美不卡| 亚洲天堂黄色| 日韩亚洲在线| 亚洲欧美日韩视频二区| 日本欧美在线看| 亚洲深夜影院| 亚洲免费一区三区| 欧美亚洲自偷自偷| 国产精品www.| 精品72久久久久中文字幕| 综合日韩av| 免费视频国产一区| 日韩中文字幕不卡| 日本不卡一区二区三区| 欧美视频一区| 欧美黑人巨大videos精品| 麻豆一区在线| 欧美国产小视频| 日韩成人免费| 亚洲va在线| 石原莉奈一区二区三区在线观看| 蜜臀精品一区二区三区在线观看| 亚洲欧洲专区| 国产欧美二区| 日韩欧美1区| 欧美成人久久| 热久久国产精品| 欧美视频一区| 亚洲国产福利| 国产精品社区| 久久国内精品视频| 国产精品99视频| 精品一区欧美| 亚洲欧洲av| 久久久久观看| 欧美91福利在线观看| 亚洲视频二区| 欧美国产日本| 日韩在线免费| 男人操女人的视频在线观看欧美| 911亚洲精品| 国产精品毛片久久| 亚洲欧美日韩在线观看a三区| 欧美影院精品| 亚洲精品88| 伊人久久大香伊蕉在人线观看热v| 国产精品一区二区精品视频观看| 亚洲永久av| 亚洲欧美视频一区二区三区| 欧美一区自拍| 999国产精品永久免费视频app| 亚洲人亚洲人色久| 国内不卡的一区二区三区中文字幕| 伊人精品一区| 奇米狠狠一区二区三区| av高清不卡| 日本亚洲视频在线| 91综合网人人| 亚洲毛片视频| 涩涩av在线| 日韩中文字幕一区二区高清99| 成人午夜网址| 一区二区电影| 成人国产精品久久| 老鸭窝亚洲一区二区三区| 免费在线日韩av| 性色一区二区| 色婷婷亚洲mv天堂mv在影片| 蜜臀久久久久久久| 国产91欧美| 日本中文字幕视频一区| 成人在线网站| 国产精品成人自拍| 日韩一级精品| 国产夫妻在线| 欧美日韩精品一区二区三区在线观看| 日韩成人亚洲| 国产精品v亚洲精品v日韩精品| 激情久久婷婷| 麻豆精品视频在线| 视频一区视频二区在线观看| 日韩.com| 91亚洲无吗|