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

您的位置:首頁技術(shù)文章
文章詳情頁

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

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

本投影界面工具的功能:

準(zhǔn)備好.prj投影文件,將輸入文件夾內(nèi)的WGS84經(jīng)緯度坐標(biāo)shp文件,投影為平面文件,成果自動命名為prj_***并新建在輸入文件夾同一路徑下。

下一步目標(biāo):

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

參考文獻(xiàn):

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

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

GUI界面示意圖

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

投影文件所在文件夾結(jié)構(gòu)如下:

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

GUI代碼

# -*- coding: utf-8 -*-# =============================================================================# 輸入文件——點(diǎn)選、復(fù)制、拖拽# 選擇待投影的文件夾、投影文件所在文件夾# ============================================================================='''Created on Thu Feb 4 16:12:00 2021@author: zhutong''' import wxfrom Def_Projection_common_E import createPrjFile,projection#創(chuàng)建應(yīng)用程序?qū)ο骯pp = wx.App() #自定義窗口類MyFrameclass MyFrame(wx.Frame):def __init__(self):super(MyFrame,self).__init__(None,title='通用經(jīng)緯度轉(zhuǎn)平面坐標(biāo)工具',pos=(600,500),size=(600,300))#Python2語法panel = wx.Panel(parent=self)#創(chuàng)建面板對象self.statictext_shp = wx.StaticText(parent=panel,label='待投影數(shù)據(jù)所在文件夾',pos=(60,30))#創(chuàng)建靜態(tài)文本對象self.statictext_shp = wx.StaticText(parent=panel,label='投影文件所在文件夾',pos=(60,80))#創(chuàng)建靜態(tài)文本對象 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):#在事件源(控件)上產(chǎn)生特定事件(左鍵單擊)后的處理程序# 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__': # #創(chuàng)建窗口對象 frm = MyFrame() # #顯示窗口 frm.Show() #進(jìn)入主事件循環(huán) app.MainLoop()

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

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

平面投影代碼

# coding=utf-8# ---------------------------------------------------------------------------## 為文件夾內(nèi)所有城市的經(jīng)緯度shp生成對應(yīng)的平面shp# 注意文件夾內(nèi)所有路徑須為英文路徑,python2## ---------------------------------------------------------------------------#注意西安和香港import arcpyimport os,reimport time#os,arcpy文件覆蓋寫arcpy.env.overwriteOutput = True #啟用覆蓋地理處理操作的輸出 inWorkspace = r’D:PythonCode_E3DCM01Data04BackPoiProcess02POIPOI_4’#待投影根目錄【運(yùn)行前確認(rèn)修改!】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 ##建立對應(yīng)投影成果文件夾——絕對路徑中【葉子節(jié)點(diǎn)】文件夾前加'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文件名匹配投影文件均可行 #打印作為參數(shù)輸入的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##針對文件夾內(nèi)shp,建立對應(yīng)所在投影文件夾、并投影#參數(shù):inWorkspace待投影成果根目錄,ini_root(=inWorkspace)新建投影文件夾替換字符用def projection(inWorkspace,prjdir,prjWorkspace):#遞歸函數(shù)的參數(shù)只能是變量參數(shù)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):#判斷是否為文件夾 #建立對應(yīng)投影成果文件夾 prjSubfolder= file_dir.replace(inWorkspace,prjWorkspace) if os.path.exists(prjSubfolder) == False:os.mkdir(prjSubfolder) #inWorkspace = file_dir#將當(dāng)前文件夾當(dāng)作根目錄 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中調(diào)試wxpython,界面一閃而過的解決辦法:

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

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

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

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日本蜜桃在线观看视频| 免费在线小视频| 日本成人精品| 亚洲天堂黄色| 国产黄色精品| 精品在线播放| 久久精品国产久精国产| 亚洲欧美日韩一区在线观看| 丁香六月综合| 国产aⅴ精品一区二区三区久久| 亚洲免费毛片| 中文字幕av一区二区三区人| 蜜桃传媒麻豆第一区在线观看 | 亚洲aⅴ网站| 性一交一乱一区二区洋洋av| 欧洲精品一区二区三区| 成人羞羞在线观看网站| 精品国产成人| 国产66精品| 亚洲一区日本| 亚洲综合日韩| 日韩av在线播放网址| 超碰在线99| 麻豆网站免费在线观看| 久久女人天堂| www.com.cn成人| 久久毛片亚洲| 日韩影院在线观看| 日本亚洲欧洲无免费码在线| 精品一区二区三区中文字幕| 日本va欧美va瓶| 久久成人av| 一级欧美视频| 免费一区二区三区在线视频| 日韩专区欧美专区| 日韩区欧美区| 久久影院一区二区三区| 日韩精品麻豆| 麻豆久久久久久| 久久久久免费| 日韩精品免费一区二区在线观看| 久久99国产精品视频| 国产精品久久久久久久久妇女| 久久电影tv| 亚洲视频二区| 亚洲图片久久| 欧美专区一区二区三区| 色爱av综合网| 国产精品777777在线播放 | 欧美日韩在线二区| 亚洲一区二区三区四区电影| 国产劲爆久久| 久久久蜜桃一区二区人| 91福利精品在线观看| 成人精品亚洲| 麻豆国产91在线播放| 性色av一区二区怡红| 精品国产亚洲一区二区三区在线 | 夜夜嗨av一区二区三区网站四季av| 国产一区二区三区免费在线| 黄色免费成人| 国产探花在线精品| 激情综合自拍| 国产免费久久| 欧美日韩国产一区精品一区| 久久精品97| 91欧美国产| 日产精品一区二区| 中文字幕乱码亚洲无线精品一区| 国产精区一区二区| 五月天久久久| 国产欧美日韩精品一区二区三区| 精品国产99| 国产网站在线| 国产精品xxx| 在线综合视频| 国产韩日影视精品| 欧美一级精品| 久久久久99| 麻豆精品视频在线观看免费| 国产亚洲久久| 欧洲精品一区二区三区| 91精品一区二区三区综合| 国产一区二区三区四区| 中文在线一区| 日本成人手机在线| 国产伦精品一区二区三区在线播放| 美女性感视频久久| 三级在线看中文字幕完整版| 欧美日韩国产综合网| 亚洲经典在线| 国产在视频一区二区三区吞精| 综合视频一区| 日韩成人三级| 国产中文字幕一区二区三区| 国产精品v一区二区三区| 日本伊人久久| 亚洲精品系列| 天堂网av成人| 7777精品| 999国产精品| 91国内精品| 日韩av福利| 欧美一级网站| 久久久成人网| 麻豆一区二区三区| 蜜桃伊人久久| 久久av一区| 国产一区二区三区日韩精品| 国产精品呻吟| 日韩欧美字幕| 国际精品欧美精品| 91亚洲人成网污www| 亚洲日韩中文字幕一区| 国产精品mv在线观看| 免费观看不卡av| 精品免费av| 久久一区精品| 都市激情国产精品| 欧美日韩一二三四| 国产乱人伦丫前精品视频| 日韩在线观看一区二区三区| 亚洲精品九九| 中文字幕亚洲影视| 国产欧美一区二区三区国产幕精品 | 久久精品高清| 精品日韩视频| 亚洲高清不卡| 亚洲一级在线| 蜜桃精品在线| 亚欧成人精品| 蜜芽一区二区三区| 色综合视频一区二区三区日韩 | 亚洲风情在线资源| 亚洲天堂久久| 亚洲精品极品| 精品一区二区三区亚洲| 久久久久久黄| 国产午夜久久av| 国产精品成人3p一区二区三区| 欧美中文字幕| 美女免费视频一区| 成人av动漫在线观看| 国产欧美在线观看免费| 国产二区精品| 乱一区二区av| 91欧美精品| 在线视频精品| 美女一区网站| 精品一区视频| 国产精品久久久久久久久久齐齐 | 日韩精品诱惑一区?区三区| 国产毛片精品| 免费不卡在线视频| 97精品国产一区二区三区| 日韩一区二区三区免费播放| 三级小说欧洲区亚洲区| 视频一区中文字幕精品 | 久久电影tv| 久久精品青草| 男女性色大片免费观看一区二区 | 精品国产亚洲一区二区三区在线 | 激情欧美一区| 国产伦一区二区三区| 欧美日韩一二| 精品九九在线| 国产欧美一区二区三区国产幕精品| 午夜久久tv| 欧美成人国产| 国产一区二区三区四区| 国产精品网在线观看| 日韩国产欧美一区二区三区| 国产中文在线播放| 福利欧美精品在线| 精品国产成人| 另类小说一区二区三区| 久久精品国内一区二区三区| 91精品国产自产观看在线 | av成人国产| 高清不卡一区| 中国字幕a在线看韩国电影| 国产美女精品| 在线观看亚洲精品福利片| а√天堂8资源在线| 日本免费在线视频不卡一不卡二| 亚洲天堂av资源在线观看| 亚洲视频电影在线| 蜜桃传媒麻豆第一区在线观看| 三级精品视频| 久久精品99国产精品日本| 国产传媒在线| 亚洲丝袜啪啪| 伊人网在线播放| 日本va欧美va瓶| 久久精品av| 国产精品蜜月aⅴ在线| 极品裸体白嫩激情啪啪国产精品| 久久精品99久久久| 老司机久久99久久精品播放免费| 九色porny丨国产首页在线|