A combinação mágica para visualização de dados geográficos: Python e Geopandas

Este artigo foi compartilhado da comunidade Huawei Cloud " Python e Geopandas: Guia de visualização e análise de dados geográficos " por Lemony Hug.

A visualização de geodados é crucial em muitos campos, seja no estudo da distribuição geoespacial, no planejamento urbano, na proteção ambiental ou na tomada de decisões empresariais. A linguagem Python é conhecida por suas poderosas bibliotecas de processamento e visualização de dados, e Geopandas, como uma extensão de seu domínio de sistema de informação geográfica (GIS), fornece ferramentas convenientes para processamento de dados geoespaciais. Este artigo apresentará como usar Python e Geopandas para visualização de dados geográficos e fornecerá exemplos práticos de código.

1. Preparação

Antes de começar, certifique-se de ter o Python e a biblioteca Geopandas instalados. Geopandas podem ser instalados usando pip:

pip instalar geopandas

2. Carregue dados geográficos

Primeiro, precisamos carregar os dados geográficos. Geopandas suporta vários formatos de dados geográficos, incluindo Shapefile, GeoJSON, Geopackage, etc. Neste exemplo, usaremos dados de mapa em formato Shapefile.

importar geopandas como gpd

# Ler dados do mapa no formato Shapefile
mundo = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))

3. Exploração e processamento de dados

Depois de carregar os dados, podemos fazer algumas explorações e processamentos básicos, como visualizar as primeiras linhas dos dados, tipo de dados, etc.

# Visualize as primeiras linhas de dados
imprimir(mundo.head())

# Veja os nomes das colunas dos dados
imprimir(mundo.colunas)

# Verifique o tipo de geometria dos dados
imprimir(mundo.geom_type)

4. Visualização de dados geográficos

A seguir, vamos visualizar os dados geográficos usando a biblioteca Matplotlib.

importar matplotlib.pyplot como plt

#desenhar mapa
mundo.plot()
plt.show()

5. Personalize o estilo do mapa

Você também pode personalizar o estilo do mapa, como alterar cores, adicionar rótulos e muito mais.

# Estilo de mapa personalizado
mundo.plot(color='azul claro', edgecolor='preto')
plt.title('Mapa Mundial')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.show()

6. Adicione dados

Além de desenhar mapas, também podemos adicionar outros dados ao mapa para fornecer mais informações.

#Adicione outros dados
cidades = gpd.read_file(gpd.datasets.get_path('naturalearth_cities'))
mundo.plot()
cidades.plot(marcador='o', cor='vermelho', tamanho do marcador=5)
plt.show()

7. Análise e consulta espacial

Geopandas podem ser usadas não apenas para visualização de dados geográficos, mas também para análise e consulta espacial. Por exemplo, podemos usar consultas espaciais para encontrar outros locais próximos a um local.

do ponto de importação shapely.geometry

#Crie um objeto de ponto para representar a latitude e longitude de um determinado local
ponto = Ponto (-74,006, 40,7128)

# Consulta espacial para encontrar a cidade mais próxima do ponto
cidade_mais próxima = cidades[cidades.distance(ponto).idxmin()]
print("A cidade mais próxima é:", cidade_mais próxima['nome'])

8. Sobreposição e agrupamento de mapas

Na visualização de mapas, às vezes é necessário sobrepor diferentes dados geográficos e exibi-los em grupos de acordo com determinadas condições.

#Grupo por continente
world_grouped = world.groupby('continent').agg({'geometry': 'union'})
mundo_grouped.plot()
plt.title('Mapa Mundial Agrupado por Continente')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.show()

9. Operações de dados geográficos mais complexas

Além das operações básicas acima, o Geopandas também suporta operações de dados geográficos mais complexas, como buffers espaciais, sobreposições espaciais, análise de relacionamento topológico geográfico, etc.

# Exemplo de buffer de espaço
buffered_area = mundo.geometria.buffer(5)
buffered_area.plot()
plt.title('Mapa Mundial em Buffer')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.show()

13. Visualização interativa de dados geográficos

Além da visualização estática de dados geográficos, ferramentas interativas também podem ser usadas para explorar e exibir dados geográficos. Bokeh e Folium são duas bibliotecas Python comumente usadas que permitem a visualização interativa de dados geográficos.

folha de importação

#Crie um objeto de mapa
m = folium.Map(localização=[40.7128, -74.006], zoom_start=10)

#Adicionar tag de cidade
para idx, linha em cidades.iterrows():
    folium.Marker([linha['latitude'], linha['longitude']], popup=linha['nome']).add_to(m)

# mostrar mapa
eu

14. Sobreposição e controle multicamadas

Em um mapa interativo, você pode adicionar diversas camadas e fornecer controles para personalizar a exibição.

#Crie um objeto de mapa
m = folium.Map(localização=[40.7128, -74.006], zoom_start=10)

#Adicionar camada do mapa mundial
folium.GeoJson(mundo).add_to(m)

#Adicionar camada de cidade
city_layer = folium.FeatureGroup(name='Cidades')
para idx, linha em cidades.iterrows():
    folium.Marker([linha['latitude'], linha['longitude']], popup=linha['nome']).add_to(city_layer)
cidade_camada.add_to(m)

#Adicionar controle de camada
folium.LayerControl().add_to(m)

# mostrar mapa
eu

15. Aplicativos de integração e visualização de dados

Ao integrar a visualização de dados geográficos com outros dados, podem ser alcançados cenários de aplicação mais ricos. Por exemplo, combinar dados populacionais, indicadores económicos e outras informações para realizar análises de dados geográficos e apresentação visual mais aprofundadas.

# Leia dados populacionais
dados_população = pd.read_csv("população.csv")

# Mesclar dados populacionais com dados da cidade com base no nome da cidade
cidades_com_população = pd.merge(cidades, dados_populacionais, como='esquerda', on='nome')

# Desenhe cidades no mapa e ajuste o tamanho do marcador com base na população
m = folium.Map(localização=[40.7128, -74.006], zoom_start=4)
para idx, linha em cidades_com_população.iterrows():
    folium.CircleMarker(localização=[linha['latitude'], linha['longitude']], raio=linha['população'] / 100000,
                        fill_color='azul', fill_opacity=0,6).add_to(m)
eu

16. Análise de dados geográficos e casos de visualização

Vamos usar um caso para demonstrar como usar Python e Geopandas para análise e visualização de dados geográficos. Suponha que temos um conjunto de dados sobre o PIB e a população de vários países do mundo. Queremos analisar a situação económica e demográfica de cada país e visualizar os resultados.

# Leia dados do PIB e da população
gdp_data = pd.read_csv("gdp_data.csv")
dados_populacionais = pd.read_csv("dados_populacionais.csv")

# Combine dados em um DataFrame
world_data = pd.merge(world, gdp_data, how='left', left_on='name', right_on='Nome do país')
dados_mundo = pd.merge(dados_mundo, dados_populacionais, como='esquerda', esquerda_on='nome', direita_on='Nome do país')

# Calcular o PIB per capita
dados_mundo['PIB per capita'] = dados_mundo['PIB (US$ atual)'] / dados_mundo['População']

# Desenhe um mapa do PIB per capita
fig, machado = plt.subplots(1, 1, figsize=(10, 6))
world_data.plot(column='PIB per capita', cmap='OrRd', linewidth=0,8, ax=ax, edgecolor='0,8', legend=True)
ax.set_title('PIB mundial per capita')
plt.show()

17. Resultados da análise

Através do código acima, podemos obter o mapa do PIB per capita dos países ao redor do mundo, a partir do qual podemos ver as diferenças nos níveis de desenvolvimento económico entre os diferentes países. Em seguida, podemos analisar mais aprofundadamente questões como a densidade populacional e o desenvolvimento regional desigual, e apresentar recomendações políticas correspondentes.

# Calcular a densidade populacional
world_data['Densidade populacional'] = world_data['Population'] / world_data.geometry.area

# Desenhar mapa de densidade populacional
fig, machado = plt.subplots(1, 1, figsize=(10, 6))
world_data.plot(column='Densidade populacional', cmap='Blues', largura de linha=0,8, ax=ax, edgecolor='0,8', legend=True)
ax.set_title('Densidade Populacional Mundial')
plt.show()

18. Conclusão e perspectivas

Através da introdução e demonstração de caso deste artigo, aprendemos como usar Python e Geopandas para analisar e visualizar dados geográficos. A análise e visualização de dados geográficos podem ajudar-nos a obter uma compreensão mais profunda da distribuição espacial e das características da Terra, proporcionando assim um apoio mais forte à tomada de decisões.

No futuro, com o desenvolvimento contínuo da tecnologia de recolha e processamento de dados, a análise e visualização de dados geográficos desempenharão um papel cada vez mais importante, fornecendo informações e conhecimentos mais úteis para o desenvolvimento sustentável da sociedade humana e a protecção ambiental.

Obrigado por ler este artigo, espero que ele inspire e ajude você!

Resumir

Este artigo analisa em profundidade como usar Python e Geopandas para visualização e análise de dados geográficos e fornece diversos exemplos de código e demonstrações de casos. A seguir está o resumo principal deste artigo:

  1. Preparação : Antes de começar, você precisa garantir que as bibliotecas Python e Geopandas foram instaladas. Você pode usar o pip para instalar o Geopandas.

  2. gpd.read_file()Carregando dados geográficos : Geopandas suporta vários formatos de dados geográficos, incluindo Shapefile, GeoJSON, Geopackage, etc.

  3. Exploração e processamento de dados : depois de carregar os dados, você pode realizar algumas explorações e processamentos básicos, como visualizar as primeiras linhas dos dados, nomes de colunas, tipos de dados, etc.

  4. Visualização de dados geográficos : use a biblioteca Matplotlib para visualizar dados geográficos e personalizar o mapa ajustando estilos e adicionando rótulos.

  5. Análise e consulta espacial : Geopandas suporta análise e consulta espacial, como consulta espacial, buffer espacial e outras operações.

  6. Salvamento e exportação de dados : você pode usar Geopandas para salvar dados geográficos em arquivos em Shapefile, GeoJSON e outros formatos.

  7. Projeção de dados e conversão de coordenadas : Geopandas suporta projeção de dados e conversão de coordenadas e pode projetar o mapa em diferentes métodos de projeção.

  8. Visualização interativa de dados geográficos : A visualização interativa de dados geográficos pode ser realizada por meio de bibliotecas como Bokeh e Folium, melhorando a interatividade na exploração e exibição de dados.

  9. Caso de análise e visualização de dados geográficos : Através da demonstração de caso, mostra como usar Python e Geopandas para analisar a situação econômica e demográfica de países ao redor do mundo e visualizar os resultados.

  10. Conclusão e perspectivas : A análise e visualização de dados geográficos são amplamente utilizadas em vários campos. Com o desenvolvimento da tecnologia, ela nos fornecerá informações e insights mais úteis.

Ao estudar este artigo, os leitores poderão dominar os métodos básicos de processamento e visualização de dados geográficos usando Python e Geopandas, além de fornecer suporte e orientação para aplicações práticas.

 

Clique para seguir e conhecer as novas tecnologias da Huawei Cloud o mais rápido possível~

Quanta receita um projeto de código aberto desconhecido pode trazer? A equipe chinesa de IA da Microsoft fez as malas e foi para os Estados Unidos, envolvendo centenas de pessoas. A Huawei anunciou oficialmente que as mudanças de emprego de Yu Chengdong foram fixadas no "Pilar da Vergonha FFmpeg" por 15 anos. atrás, mas hoje ele tem que nos agradecer—— Tencent QQ Video vinga sua humilhação passada? O site espelho de código aberto da Universidade de Ciência e Tecnologia de Huazhong está oficialmente aberto para acesso externo : Django ainda é a primeira escolha para 74% dos desenvolvedores. O editor Zed fez progressos no suporte ao Linux. deu a notícia: Depois de ser desafiado por um subordinado, o líder técnico ficou furioso e rude, foi demitido e engravidou. Funcionária Alibaba Cloud lança oficialmente Tongyi Qianwen 2.5 Microsoft doa US$ 1 milhão para a Rust Foundation.
{{o.nome}}
{{m.nome}}

Acho que você gosta

Origin my.oschina.net/u/4526289/blog/11121311
Recomendado
Clasificación