九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
【收藏】一文徹底搞懂ArcGIS圖斑編號
由于將要介紹的方法大多數(shù)都用到ArcGIS屬性表中的【字段計算器】,因此先對【字段計算器】做一簡單介紹。
0

字段計算器介紹

在左側(cè)菜單欄任一要素類或者表上右擊【打開屬性表】,再找到要計算的字段上右擊【字段計算器】,即可打開字段計算器。

打開【字段計算器】后頁面如下圖所示:
1是選擇腳本語言,默認(rèn)是VB語言,可以改成Python語言;2是要素字段名,雙擊會在3和4的代碼里顯示;3是代碼框,勾選【顯示代碼塊】就會出現(xiàn),用于編寫多行的簡單腳本。4主代碼框,用于簡單的代碼或字段運(yùn)算。右邊是常用函數(shù),雙擊即可使用,可用于字段屬性字符串切片[:]、大小寫轉(zhuǎn)換.isupper()、字符串補(bǔ)齊.zfill()等。

1

按圖斑順序編號

最簡單的編號就是按圖斑順序依次編號,一種是可以借助現(xiàn)有的編號字段,比如FID進(jìn)行字段運(yùn)算獲得編號,另外一種便是通過編寫簡單代碼的方式進(jìn)行編號。先看第一種,我們添加一個BH字段,然后打開字段計算器,切換到Python語言,然后雙擊FID字段再加1(FID編號從0開始)。

計算完成后,BH字段里面就有了編號。

      接下來,我們通過編寫簡易代碼的方式來實(shí)現(xiàn)編號。同樣打開字段計算器,切換到Python語言,顯示代碼塊,在里面編寫編號函數(shù),然后在下面進(jìn)行函數(shù)調(diào)用,同樣可以實(shí)現(xiàn)上面的效果。
完整編號函數(shù)代碼如下,在字段計算器代碼塊里面輸入時要注意空格,否則容易報錯。溫馨提示:可以通過點(diǎn)擊【保存】按鈕將當(dāng)前函數(shù)保存成.cal的函數(shù)文件,下次使用時點(diǎn)擊【加載】按鈕便可直接調(diào)用。
1rec=0
2def autoIncrement():
3  global rec
4  pStart = 1 
5  pInterval = 1 
6  if (rec == 0): 
7    rec = pStart 
8  else
9    rec = rec + pInterval
10  return re

這樣我們便實(shí)現(xiàn)了簡單的順序編號,但有時候我們需要編號數(shù)字位數(shù)保持一致,例如:0001、0299這樣都是四位數(shù)。這就需要用到Python字符串函數(shù).zfill(n)。函數(shù)功能:返回長度為n的字符串,原字符串右對齊,前面填充0。

下面,我們以生成5位數(shù)編號舉例。在BH字段名稱上右擊打開字段計算器,切換到Python語言,先選擇并雙擊BH字段,再選擇并雙擊.zfill()函數(shù),輸入函數(shù)參數(shù)5,就形成!BH!.zfill(5)代碼,表示BH字段字符串向左保留為5位。

點(diǎn)擊確定,計算完成后生成的結(jié)果如下:

同樣的,如果需要在編號前面再加其他字母等信息,直接在編號前面添加即可。比如5位編號前面加“SM”,為“SM00001”,代碼為:'SM'+ !BH!,要注意為英文雙引號。另外,也可以通過修改上面編號函數(shù)代碼的方式實(shí)現(xiàn)。

2

按字段類型編號

有時候,我們在編號時需要按照圖層中某一字段屬性類型對要素進(jìn)行編號。比如在衛(wèi)片圖斑中,我們需要按鄉(xiāng)鎮(zhèn)對圖斑進(jìn)行編號,每個鄉(xiāng)鎮(zhèn)都從0開始編號。同樣可以在字段計算器中采取Python腳本的方式進(jìn)行實(shí)現(xiàn)。我們定義一個isDuplicateIndex(inValue)函數(shù),然后調(diào)用即可,同時讓編號按3位數(shù)對齊。

完整Python代碼:

1UniqueDict = {}
2def isDuplicateIndex(inValue):
3    UniqueDict.setdefault(inValue,0)
4    UniqueDict[inValue] += 1
5    return UniqueDict[inValue]
計算后結(jié)果如下:

3

按圖斑四至編號

有時候,為了工作方便我們需要按照圖斑四至位置,按照從左到右、從上到下的順序給圖斑進(jìn)行編號。按照四至位置編號,首先需要按照上述排序方式對圖斑進(jìn)行重新排序,然后依次編號即可。

首先,需要給大家簡單介紹一下幾個字段計算器中常用的Python語法:

1!shape.area!:圖斑要素面積;
2!shape.length!:圖斑要素周長。
3!shape.extent.Xmin!:圖斑要素最小外包矩形的左上角X坐標(biāo);
4!shape.extent.XMax!:圖斑要素最小外包矩形的右下角X坐標(biāo);
5!shape.extent.Ymax!:圖斑要素最小外包矩形的左上角Y坐標(biāo);
6!shape.extent.YMin!:圖斑要素最小外包矩形的右下角Y坐標(biāo);

具體操作步驟如下:

第一步:給圖層添加XminYmax兩個字段。字段添加后,在字段計算器中基于Python語法:!shape.extent.Xmin!!shape.extent.Ymax!分別計算出Xmin和Ymax坐標(biāo)。

第二步:在【數(shù)據(jù)管理】模塊下的【常規(guī)】工具集中找到【排序】工具進(jìn)行圖斑排序。

排序規(guī)則:從上到下排序意思就是沿縱軸從上到下排序,所以排序字段Ymax在前面降序排列,從左到右排序意思就是沿橫軸從左到右排序,所以排序字段Xmin在后面升序排列,從而保證數(shù)據(jù)按從上到下,從左到右的順序排列。

第三步:排序后會生成一個新的要素圖層,給新圖層添加編號字段,然后運(yùn)用上面順序編號的代碼給圖斑依次編號就可了。

計算完成后我們要的四至編號就成功實(shí)現(xiàn)了,如下圖所示:

需要說明的是,這塊沒有使用質(zhì)心坐標(biāo)是因為圖斑形狀很長或很寬時,會因為質(zhì)心的位置導(dǎo)致排序位置偏后。為了避免這種情況,采取Xmin和Ymax進(jìn)行排序。
4

圖斑分級別號

實(shí)際工作中,有時候需要根據(jù)某字段屬性值大小劃分不同的等級進(jìn)行編號或賦值,所謂圖斑分級編號。比如:按照圖斑面積劃分不同的等級,相同等級的圖斑賦相同的編號或其他屬性值。

我們以面積大小為例,采取自定義Python函數(shù)的方式演示一下如何進(jìn)行分級編號。自定義編號函數(shù):按照要素面積大小,將面積小于2000平方米的圖斑編號為1,大于2000小于3000平方米的為2,以此類推。

完整的函數(shù)代碼如下:

 1def bianhao(value):
2  bh = ''
3  if value <= 2000:
4    bh = 1
5  elif 2000 < value <= 3000:
6    bh = 2
7  elif 3000 < value <= 4000:
8    bh = 3
9  elif 4000 < value <= 5000:
10    bh = 4
11  else:
12    bh = 5
13  return str(bh).zfill(3)

函數(shù)調(diào)用字段為面積字段,計算后結(jié)果如下,圖斑已經(jīng)按照面積大小進(jìn)行了編號。

另外,有種笨辦法不用寫代碼也能實(shí)現(xiàn)分級編號。還是以面積為例:首先對面積進(jìn)行升序或降序排序,然后手動選中面積小于2000平方米的所有圖斑,再手動將編號賦值為1,以此類推。當(dāng)然,數(shù)據(jù)量大時就不太方便了。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
通用數(shù)據(jù)庫排序代碼
ArcGis中字段計算器的Python/VB程序?
ArcGIS字段計算器(Python篇)——字段查重等問題匯總
妙用split將字段分成多列
ArcGIS四種計算圖斑面積的方法
dedecms自定義orderby排序
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服