Mais

Searchcursor leva apenas o primeiro valor no campo

Searchcursor leva apenas o primeiro valor no campo


Meu script ArcGIS 10.2 está usando o searchcursor para ler a classe de recurso mLanduse para retornar o valor em lField, mas está apenas retornando o primeiro valor em lField para preencher o sField em mSoils.

# Percorre as linhas e atualiza os valores de sField em branco em mSoils # com lFields de mLanduse para linha no cursor: com arcpy.da.UpdateCursor (mSoils, sField, "SoilType =" ") como cursor2: para linha2 no cursor2: linha2 [0] = linha [0] linha = cursor.next ()

Se bem entendi, o problema aqui é que você deseja fazer uma junção espacial (com base na localização), mas está usando um método de junção de tabela (com base em um campo "chave"). Na verdade, não parece haver um campo-chave e você não tem o mesmo número de recursos, então não será capaz de obter a correspondência com base em seus atributos. Eu sugiro que você comece com arcpy.SpatialJoin_analysis e a opção de correspondência "dentro", então você pode atualizar seus campos vazios com o cursor de atualização. A desvantagem do método é que ele cria uma nova classe de recurso, então você também pode usar a geometria dentro do cursor, mas não tenho tempo para escrever o script.