第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

順序 ID 生成器 python ArcGIS

順序 ID 生成器 python ArcGIS

慕田峪9158850 2021-11-23 19:06:16
你好,stackoverflow 社區(qū),我只有 2 個(gè)月的 Python 經(jīng)驗(yàn),但決定用一個(gè)班級(jí)項(xiàng)目挑戰(zhàn)自己,并最終將其納入我的工作。我使用 ArcGIS,我想創(chuàng)建一個(gè)循環(huán)腳本,根據(jù)“系統(tǒng)”字段更新字段上的 ID。示例:如果系統(tǒng)字段是“Chaparral”,那么我希望 ID 字段以字母“CH-HY”開頭,然后設(shè)置一個(gè)計(jì)數(shù)器 +1,將 1 添加到字段中已有的現(xiàn)有 ID,如“CH-HY0006” '。這是我現(xiàn)在所擁有的。填充消火栓 ID 字段with arcpy.da.UpdateCursor("Hydrants.shp", ["FACILITYID", "SYSTEM"]) as cursor:    for row in cursor:        if (row[0] == '<Null>' and row[1] == 'Chaparral'):            row [0] = 'CH-HY{}'.format(int1)         elif (row[0] == '<Null>' and row[1] == 'SunCity'):             row [0] = 'SC-HY{}'.format(int2)     cursor.updateRow(row)這就是我被困的地方。我如何檢索字段中已有的 ID 并獲得最高數(shù)字,以便我可以將其加 1。我真的想不惜一切代價(jià)避免在同一系統(tǒng)中創(chuàng)建重復(fù)項(xiàng)。
查看完整描述

2 回答

?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果您只是為了填充字段而寫入,而不是讀取和寫入 - 您可以在循環(huán)之外創(chuàng)建一個(gè)狀態(tài)變量來跟蹤索引。


with arcpy.da.UpdateCursor("Hydrants.shp", ["FACILITYID", "SYSTEM"]) as cursor:

    chaparral_index = 0

    Suncity_index = 0

    for row in cursor:

        if (row[0] == '<Null>' and row[1] == 'Chaparral'):

            row [0] = 'CH-HY{}'.format(chaparral_index)

            chaparral_index += 1 

        elif (row[0] == '<Null>' and row[1] == 'SunCity'): 

            row [0] = 'SC-HY{}'.format(Suncity_index)

            Suncity_index += 1 

    cursor.updateRow(row)

如果您打算從預(yù)先存在的數(shù)據(jù)中讀取,您可能需要引入正則表達(dá)式來解析“FACILITYID”并找到最高索引。


查看完整回答
反對(duì) 回復(fù) 2021-11-23
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

為了檢索現(xiàn)有的最后一個(gè) ID,我使用 Search.Cursor 像這樣用于 Chaparral 系統(tǒng):


CHvalues = [row[0] for row in arcpy.da.SearchCursor("Hydrants.shp", "FACILITYID", "SYSTEM = 'Chaparral'")]


CHuniqueValues = max(CHvalues)


CHintLastVal = int(CHuniqueValues[-4:])

這是我如何將它實(shí)現(xiàn)到循環(huán)中:


with arcpy.da.UpdateCursor("Hydrants.shp", ["FACILITYID", "SYSTEM"]) as cursor:

for row in cursor:

    if ((row[0] == None or  row[0] == '<Null>' or row[0] == '') and row[1] == 'Chaparral'):

        CHintLastVal = CHintLastVal + 1

        CHstr099 = str(CHintLastVal)

        print('CH-HY{}'.format(CHstr099))

        row [0] = 'CH-HY{}'.format(CHstr099)

我將不得不研究 re.search,因?yàn)楫?dāng)整數(shù)達(dá)到 9,999 并且 int[-4] 需要更改為 [-5] 以容納 10,000 時(shí),我可以看到這種方法會(huì)導(dǎo)致問題。


謝謝你們的反饋!


查看完整回答
反對(duì) 回復(fù) 2021-11-23
  • 2 回答
  • 0 關(guān)注
  • 330 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)