一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

GIS_Arcpy.mapping在制圖自動化中的使用

 昵稱QAb6ICvc 2013-01-31

GIS_Arcpy.mapping在制圖自動化中的使用

已有 774 次閱讀 2012-1-21 12:54 |個(gè)人分類:GIS|系統(tǒng)分類:科研筆記|關(guān)鍵詞:Arcpy.mapping automatic

今天學(xué)習(xí)了在ArcGIS10中如何使用Python實(shí)現(xiàn)制圖自動化的課程。學(xué)完課程之后發(fā)現(xiàn),其實(shí)很多在我目前的應(yīng)用水平上還用不上這么高級的東西。其實(shí)也能,我做的一些組圖就可以。但是這畢竟僅僅是修改一些參數(shù)。如果想深入使用,還需要進(jìn)一步學(xué)習(xí)一些其他的函數(shù)功能。

現(xiàn)在對課程中所涉及到的Python程序和相應(yīng)的函數(shù)做一個(gè)總結(jié),為以后的學(xué)習(xí)提供參考,同時(shí)也復(fù)習(xí)相關(guān)的內(nèi)容。

主要內(nèi)容是將如何使用ArcPy Mapping這個(gè)模塊。模塊的主要作用是使地圖的管理和輸出自動化。也就是說通過Python編程來流暢操作大量數(shù)據(jù)的制圖和輸出過程,而不需要手動單獨(dú)操作。例如,更新或者修正數(shù)據(jù)源, 打開和分析地圖文件并且更新元數(shù)據(jù)等。

1.      管理地圖和圖層

arcpy.mapping

這可以理解為一個(gè)編程環(huán)境,也可以理解為一個(gè)總的函數(shù)功能,下面有許多子功能。通過使用它,可以用來調(diào)用地圖數(shù)據(jù)的各個(gè)屬性以及制圖元素(layer, layout element

2.      第一步:設(shè)定工作圖層 where to run your script, or can be understood as which map document you will work with

基本代碼:

“mxd = arcpy.mapping.MapDocument (“current”)”

這個(gè)代碼命名了一個(gè)新變量 mxd”,然后使用MapDocument這一函數(shù)將current,也就是當(dāng)前的圖層賦值給這個(gè)變量。

如果不想用當(dāng)前圖層,可以使用目標(biāo)圖層的地址,代替current

例如:

“mxd = arcpy.mapping.MapDocument(r“C:\Maps\city.mxd”)”

這里要注意的是要在地址前面加上個(gè)字母“r”。原因是“\”在python中有特殊的含義,加上r后可以使python忽略這一符號,而將其按地址來讀取。

MapDocument是一個(gè)對象函數(shù),他將是變量能夠處理地圖的屬性。通常,使用這個(gè)函數(shù)對變量賦值是編程的第一行,因?yàn)檫@將使得變量可以使用arcpy.mapping中的許多子函數(shù)。下面將看到。而通常最后兩行是保存和刪除變量(del mxd)。刪除的原因有兩個(gè),一個(gè)是避免之后如果對不同的地圖文件使用變量名,有可能引起錯誤。另外,如果想給目前的地圖文件附以其他名,需要從當(dāng)前變量名中解放出來。

使用arcpy.mapping的目的是使編程簡單。在用他調(diào)用地圖文件(map document)的時(shí)候,需要先建立好地圖文件,包括里面的指北針等,都需要先建立好。

3.      修改名字:

mxd.author=”GIS Department””修改之后,可以在data frame的屬性表中看到效果。

mxd.save()

4.      修改地址和數(shù)據(jù)源(layer data sources

“path =  “C:\Student\Mapscripting2\”” (這相當(dāng)于建立了一個(gè)新的變量,用該代替具體的地址,作用后面會體現(xiàn))

“mxd.replaceWorkspaces(path+r”\cityof\Westerville.mdb”, “ACCESS_WORKSPACE”, path+r”\westervill.gdb”, “FILEGDB_WORKSPACE”)”

(這個(gè)函數(shù)有四個(gè)必須的參數(shù),old_workspace_path, old_workspace_type, new_workspace_path, new_workspace_type

這里就體現(xiàn)了使用path這個(gè)新參數(shù)的意義,如果新的工作區(qū)域和就得工作區(qū)域不在一個(gè)文件夾里面,需要兩個(gè)path variable.

mxd.saveACopy(“C:\Student\Mapscripting\newname.mxd”)

這里面有兩種不同的保存選擇,上面是直接保存,這個(gè)是保存一個(gè)新的。

5.      修改屬性(properties

顯示Dataframe里面圖層的列表:

ListDataFrames”返回一個(gè)所有DataFrame里面圖層的Python列表。

 “mxd =  arcpy.mapping.MapDocument(“Current”)”

“df = arcpy.mapping.ListDataFrames(mxd)[1]”

“print df.name”

后面的1是一個(gè)從0開始技術(shù)的指數(shù),表示的是所需要參數(shù)的個(gè)數(shù),比如是第二個(gè),那就用1.

這個(gè)是將DataFrame命名,但是如果是Dataframe中的某一個(gè)圖層,需要用到:

ListLayers

她有三個(gè)參數(shù):map_document, {wildcard}, {data_frame}

比如,為了將West這一Dataframe中的df這一圖層賦值給Lyr;

lyr=arcpy.mapping.ListLayers(mxd,””,df)

關(guān)閉圖層: lyr.visible=False

為了看到執(zhí)行的效果,需要使用:arcpy.RefreshActiveView()arcpy.RefreshTOC()

6.      For loop應(yīng)用

如果不知道某一個(gè)圖層所在的DataFrame,就用一個(gè)循環(huán)來解決;

“for lyr in arcpy.mapping.ListLayers(mxd):”

“if lyr.name==”Hydrography””

“l(fā)yr.name=”Lakes””

 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章

    国产精品亚洲综合天堂夜夜| 日本一本在线免费福利| 在线观看视频日韩成人| 69久久精品亚洲一区二区| 国产一区二区三区精品免费| 东北老熟妇全程露脸被内射| 亚洲精品国产精品日韩| 精品少妇人妻av一区二区蜜桃| 好吊妞在线免费观看视频| 欧美日韩亚洲国产综合网 | 欧美日韩国产免费看黄片| 果冻传媒精选麻豆白晶晶| 午夜精品麻豆视频91| 91欧美激情在线视频| 国产精品一区二区高潮| 国产高清一区二区不卡| 国产熟女高清一区二区| 亚洲男女性生活免费视频| 欧美亚洲另类久久久精品| 国产视频一区二区三区四区| 欧美丰满大屁股一区二区三区| 99国产高清不卡视频| 久久精品a毛片看国产成人| 中文字幕乱码一区二区三区四区| 日韩精品福利在线观看| 午夜福利视频偷拍91| 日韩欧美高清国内精品| 国产不卡在线免费观看视频| 国产女高清在线看免费观看| 亚洲黄香蕉视频免费看| 人妻亚洲一区二区三区| 国产精品午夜一区二区三区| 国产亚洲欧美日韩精品一区| 亚洲中文在线男人的天堂| 男女一进一出午夜视频| 免费黄色一区二区三区| 欧美黑人精品一区二区在线| 亚洲国产精品久久综合网| 日本久久精品在线观看| 深夜视频在线观看免费你懂| 国产性色精品福利在线观看|