Mais

ERRO 000732 do ArcPy?

ERRO 000732 do ArcPy?


Qual é o problema, uma vez que tenho a pasta "test_script" existente em C: mas o arcpy detecta como um truncado (ou seja, est_script) e sinaliza um erro.


Python está tratando tcomo guia, então você está realmente fazendoC {TAB} estvocê precisa escapar com\ou use uma string bruta usandorpor exemplor'C: test_script '


Tente inserir seu caminho como um Rawstring, como neste snippet:

arcpy.CreateFeatureclass_management (r "C:  test_script  Fish.gdb",…

Basicamente, apenas prefixe um r.


Iterando através da camada de pontos para criar e adicionar rasters de distância

Eu & # 8217m escrevendo um programa Arcpy para processar dados em uma camada de várias centenas de pontos (& # 8216ptsLyr & # 8217, do arquivo & # 8216ptsFile & # 8217), cada um dos quais tem seu próprio ID (& # 8216RecordID & # 8217) e um associado valor, & # 8216radius & # 8217, que desejo usar para criar um buffer de distância em torno desse ponto como um proxy para uma área de comércio no local do ponto, o valor do raster será 1, enquanto na borda do raio e além dele será 0, com uma diminuição linear do centro para a borda. Em última análise, quero somar todos os buffers individuais para obter uma medida ponderada de distância de quantos pontos contribuem para cada célula no raster. Devido ao número de pontos, não desejo criar centenas de arquivos rasterizados individuais.

Como exemplo, considere uma célula que está localizada entre dois pontos, A e B, de forma que está a 4.000 m de A e 2.000 m de B, que têm raios de 8.000 me 10.000 m, respectivamente. A contribuição para a célula do ponto A será (8000-4000) / 8000 = 0,5, já que a célula está a meio caminho entre o ponto A e seu perímetro. A contribuição do ponto B será (10000-2000) / 10000 = 0,8, uma vez que está a 1/5 do caminho do centro de B & # 8217s até seu perímetro. Se a célula está a 6.000 m de outro ponto, C, que tem um raio de 3.000 m, C não contribuirá para o cálculo, pois qualquer valor fora de 3.000 m de C será 0. Na célula, então, o & # 8216cumulativo & # O valor 8217 dos buffers sobrepostos é 0,5 + 0,8 = 1,3.

Tenho que iterar pelos pontos individualmente porque a função de distância EucDistance () calcula a distância de cada célula ao mais próximo ponto, que não é o que eu quero. Além disso, aparentemente tenho que criar uma nova camada a partir de cada ponto à medida que o processo, porque EucDistance () não parece respeitar as seleções de pontos individuais feitas por SelectLayerByAttribute_management (). EucDistance () definirá valores fora do raio para & # 8216Nenhum dado & # 8217, mas posso facilmente reclassificá-los para zero assim que tiver o raster final somado.

As coordenadas do mapa são projetadas (NAD83 UTM Zona 17N) e todos os valores estão em metros.

No momento, tenho o básico funcionando, mas estou recebendo erros associados a: as camadas raster / matemática raster. Suspeito que os problemas tenham algo a ver com as configurações do meu ambiente, objetos raster vs camadas, arquivos vs bancos de dados geográficos e / ou a (im) mutabilidade dos raster.

Se eu fizer a matemática raster no formato & # 8216dist1 = radius & # 8211 distR & # 8217, como acima, obtenho o erro

Por outro lado, se eu designar explicitamente objetos raster usando o formato

Alguém pode explicar qual é o problema e, o mais importante, me ajudar a completar este código para que funcione corretamente?

Seguindo a sugestão de Luke & # 8217s, neste ponto eu & # 8217 agora tentei com nenhum dos arquivos em um gdb, apenas os arquivos temporários e o raster de saída em um, ou todos os arquivos em um (sem espaços no caminho / nomes de arquivos). Todos os arquivos estão na mesma projeção com as mesmas extensões. Eu também tentei & # 8216Adicionar resultados de operações de geoprocessamento ao visor & # 8217 tanto ligado quanto desligado.

Na verdade, ele estava funcionando na outra noite, mas travou durante a operação e devo ter mudado algo no próprio programa ou na configuração do ArcGIS em algum lugar. É mais ou menos assim que a saída deve ser:

Agora, entretanto, sempre que eu inserir a parte & # 8216else & # 8217 da instrução & # 8216if & # 8217 (modificada como abaixo):

o raster sumRas é substituído por nenhum dado, o que obviamente me impede de acumular uma soma. Não tenho ideia de por que isso está acontecendo e por que não consigo consertar.

Uma resposta

Você pode tentar definir o espaço de trabalho de saída com arcpy.env.workspace para ser uma pasta, não um arquivo GDB.

Certifique-se de especificar uma pasta sem espaços no caminho, pois o ArcGIS usará seu formato GRID padrão para rasters temporários que não podem ter espaços no caminho.


Assista o vídeo: Видеолекция Практика в ArcGIS PRo