Mais

Usando vários parâmetros curinga com arcpy.ListFeatureClasses


Sei que deve haver uma maneira de fazer isso, mas estou tendo problemas para descobrir como fazer isso. Gostaria de criar uma lista de classes de recursos para executar operações, no entanto, quero que a lista contenha classes de recursos que tenham 2 identificadores de nome de arquivo separados e distintos. O código seria semelhante a:

FCS = arcpy.ListFeatureClasses ("X_ *" OR "* _Y")

Eu sei que OR está incorreto, no entanto, existe alguma maneira de fazer isso sem ter que reescrever o código para trabalhar com o segundo curinga. Obrigado por ajudar a gota, eu sei que há um método de seleção em Select By Attributes que permite o uso de vários caracteres curinga usando a instrução OR.


Some os dois, são apenas listas.

FCS = arcpy.ListFeatureClasses ("X_ *") + arcpy.ListFeatureClasses ("* _ Y")

Para eliminar duplicatas:

FCS = set (arcpy.ListFeatureClasses ("X_ *") + arcpy.ListFeatureClasses ("* _ Y"))

Você poderia abordar isso de maneira um pouco diferente:

import arcpy import os arcpy.env.workspace = 'c:  temp' fcs = [fc para fc em arcpy.ListFeatureClasses () if fc.startswith ('X_') ou os.path.splitext (fc) [0]. endswith ('_ Y')]

Este script especifica vários curingas em uma listaestojos[] Em seguida, ele faz um loop em casos únicos, listando as classes de recursos desejadas 'arcpy.ListFeatureClasses ()'. Cada classe de recurso selecionada é adicionada à nova lista de classes de recurso usando '.extend'

# Crie uma lista de casos de curingas = ["X_ *", "" * _Y ""] # Crie uma lista vazia para armazenar todos os arquivos selecionados fcs = [] # Faça um loop pelos arquivos para selecionar arquivos seguindo vários curingas para casos em casos: fc = arcpy.ListFeatureClasses (case) # Insira o fc na lista fcs.extend (fc)

Automatize a adição de milhares de recursos à topologia com Python.

Havia dois problemas: eu estava usando o python 3.4 quando 2.7 é a versão compatível com o arcmap10x. Além disso, tive que validar a topologia antes de adicionar classes ou regras de recursos. Eu o executei em um pequeno conjunto de dados e o script encontra recursos com sucesso, adiciona-os a uma topologia e adiciona 2 regras para cada recurso. Agora estou executando no grande conjunto de dados. Até agora, sem erros. Vou deixá-lo funcionando no fim de semana. Se for bem-sucedido, verei se é possível editar manualmente as violações de regra dentro do arcmap com um conjunto de dados tão grande. Isso vai ser uma outra besta.

Agradecimentos especiais a plagioclase e todos os outros redditors que me ajudaram.

Edição 4: I & # x27m preso ao adicionar regras. Eu tentei correr

Mas recebi um erro sobre os parâmetros da regra de adição, então decidi apenas adicionar o caminho direto por enquanto, apenas para ver se consigo fazer uma regra de adição funcionar.

Pelo menos agora vejo a regra Adicionar à Topologia surgir e falhar. O erro que recebo é

Então, eu preciso adicionar um processo de salvar em camada lá?

O motivo pelo qual quero fazer isso com o python é por causa das limitações do Arcgis. No arccatalog, por exemplo, você deve inserir um recurso de cada vez com uma regra anexada. Eu tenho milhares de recursos, então isso levaria uma eternidade. Eu quero automatizar de alguma forma o processo com Python. Eu originalmente postei um script simples que escrevi que não estava funcionando, mas me pergunto se estou abordando o problema incorretamente. Alguma ideia? Obrigada!



StackExchange.ready (function () <
var channelOptions = <
tags: "" .split (""),
id: "79"
>
initTagRenderer ("". split (""), "" .split (""), channelOptions)

StackExchange.using ("externalEditor", function () <
// Tem que disparar o editor após os snippets, se os snippets estiverem habilitados
if (StackExchange.settings.snippets.snippetsEnabled) <
StackExchange.using ("snippets", function () <
createEditor ()
>)
>
else <
createEditor ()
>
>)

function createEditor () <
StackExchange.prepareEditor (<
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputaçãoToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: <
brandingHtml: "Powered by u003ca href =" https://imgur.com/ "u003eu003c / au003e",
contentPolicyHtml: "Contribuições do usuário licenciadas sob u003ca href =" https://creativecommons.org/licenses/by-sa/3.0/ "u003ecc by-sa 3.0 com atribuição necessáriau003c / au003e u003ca href =" https://stackoverflow.com/ legal / content-policy "u003e (política de conteúdo) u003c / au003e",
allowUrls: true
>,
onDemand: true,
discardSelector: ".discard-answer"
, imediatamenteShowMarkdownHelp: true
>)

Obrigado por contribuir com uma resposta para Sistemas de Informação Geográfica Stack Exchange!


  • Pedir ajuda, esclarecimento ou responder a outras respostas.
  • Fazer declarações com base em opiniões apoiá-las em referências ou experiência pessoal.

Para saber mais, veja nossas dicas sobre como escrever boas respostas.

Algumas de suas respostas anteriores não foram bem recebidas e você corre o risco de ser impedido de responder.


Assista o vídeo: Insert pictures to the attribute table in ArcGIS (Outubro 2021).