Criar arquivo de forma em nível de município a partir de um conjunto de pontos com espaçamento de 30 x30 km usando o ArcGIS for Desktop?

9

Eu tenho um conjunto de dados no formato csv, como:

latitude, longitude, value
-45, 45, 10
....

Eu gostaria de calcular as médias de nível de município a partir desses dados, usando grama ArcGIS ou R +.

Eu tenho a camada ArcGIS USA Counties, mas não consegui concluir com êxito uma junção espacial.

Como posso fazer isso?

Abe
fonte

Respostas:

4

Um fluxo de trabalho usado para gerar um arquivo de forma no nível do município com média (z) em cada município a partir de uma tabela de dados xyz no ArcGIS

note que isso se baseia na sugestão de @ MLowry, adicionando instruções quase passo a passo.


ArcCatalog aberto

  1. crie um novo banco de dados geográfico pessoal (por exemplo, foo.mdb)
  2. arquivo -> novo -> banco de dados geográfico pessoal
  3. adicionar dados

    • clique com o botão direito do mouse em map.csv -> exportar para geodatabase (único) -> foo.mdb
    • clique com o botão direito em counties.lyr -> exportar para geodatabase (único) -> foo.mdb
  4. criar featureclass (arquivos .shp) da tabela xy

    • abrir foo.mdb
    • clique com o botão direito do mouse na tabela map.csv -> crie uma featureclass a partir do xytable
    • campos de entrada x = lon, y = lat, z = rendimento
    • sistema de coordenadas de coordenadas de entrada import -> from counties.lyr (ou, equivalentemente, -> geográfico .. -> mundo -> wgs_1984 -> aberto -> ok)
  5. importar classes de recursos para o geodatabase (vários)

    • selecione os arquivos shp criados em anterior. passo -> adicionar -> ok

ArcMap aberto

  1. Adicionar dados

    • selecione foo.mdb -> CTL + selecione tabelas -> abrir
  2. Junção espacial

    • ArcToolbox -> Ferramentas de Análise -> Sobreposição -> Junção Espacial ->
    • Recursos de destino: counties.lyr
    • Recursos de junção: mapa de tabela xyz
    • Classe de recurso de saída: filename_spatialjoin
    • Entrar na operação: JOIN_ONE_TO_ONE
    • Opção de correspondência: mais próxima
    • Mapa de campo dos recursos de junção: remova campos indesejados (somente STATE_FIPS, CNTY_FIPS, valores z necessários
    • Raio de pesquisa: 30km
    • clique OK
    • Valor de Z = rendimento; selecione 'média' (ou estatística alternativa)
David
fonte
@ David Obrigado pela resposta detalhada ... terá que dar uma olhada.
Abe
@ Fique à vontade para editar quando fizer isso. Eu fiz CW
David LeBauer
@ David Nesta circunstância, a IDW produzirá resultados incorretos para as estatísticas das zonas: veja a discussão após a resposta de @ scw.
whuber
@whuber. Obrigado por apontar isso. Quando terminei, havia esquecido que o ponto original era fazer uma junção espacial dos pontos com os condados; fixo.
David LeBauer
@ David Obrigado. Mas agora estou confuso. Primeiro, onde nesse fluxo de trabalho você realmente cria uma "camada raster", como anuncia o seu título? Segundo, como são produzidas três camadas? O arquivo CSV representa meramente um conjunto de pontos (x, y), cada um com um único atributo numérico (z).
whuber
6

Parece que você pode converter o arquivo .csv em um tema de evento, exportar para .shp e, em seguida, fazer uma junção espacial com o novo .shp na camada do condado, e BOOM, você deve fazer os cálculos.

MLowry
fonte
6

Uma abordagem geral é converter os dados de pontos regularmente espaçados em uma varredura (XYZ para varredura em Arc *; v.in.xyz no GRASS) e, em seguida, executar um operador de estatística zonal para agregar os valores das células em cada município e calcular estatísticas ( mean é uma das estatísticas padrão calculadas). Para executar as estatísticas, use Estatísticas Zonais no Arco * ou v.rast.stats no GRASS.

Se você precisasse fazer estatísticas mais avançadas, poderia fazer a análise em R com rastere spmas é um pouco mais complicado.

scw
fonte
Boa ideia, mas, a menos que as matrizes de pontos sejam orientadas corretamente com as coordenadas, a reamostragem ocorrerá na conversão para uma varredura e você estará à mercê do algoritmo de reamostragem: as médias provavelmente serão um pouco menores, não importa o que .
whuber
Certo, se o tamanho da célula estiver definido para reamostragem grosseira, pode ocorrer. Como aproximação, você poderá definir o tamanho da célula para metade da distância mínima entre dois pontos e evitar esse problema. Essa abordagem tem o lado negativo de ter que lidar com reamostragem, mas eu achei muito melhor que o número de pontos é grande (dezenas de milhares ou mais).
ACS
@scw A reamostragem ocorre independentemente do tamanho da célula (a menos que os dados já estejam perfeitamente alinhados com a grade). Ao usar um tamanho de célula mais fino, você provavelmente obterá respostas piores , porque a maioria dos valores da grade é interpolada entre os originais. A menos que você esteja usando a interpolação do vizinho mais próximo, isso fará com que os valores extremos sejam sub-representados. A média será apenas ligeiramente afetada; outras estatísticas, como o desvio padrão, podem ser mais fortemente afetadas.
whuber
@whuber Acho que vejo de onde vem nosso mal-entendido - não estou defendendo a conversão dos dados em uma superfície contínua, apenas colocando os valores dos pontos (quando existirem) em uma grade raster regular. Portanto, a grande maioria da grade permanecerá NULL, com apenas valores ocasionais nos locais das células coincidentes com os locais dos pontos.
ACS
@ SCW Ah, muito bom! Obrigado pelo esclarecimento. Você está efetivamente fazendo o equivalente baseado em grade da junção espacial recomendada pelo @MLowry.
whuber