Python usa polígonos de Thiessen para calcular a precipitação em cada distrito e município

Para calcular a precipitação em condados individuais usando polígonos de Thiessen, você pode usar as bibliotecas `geopandas` e `scipy` em Python para processamento. Aqui está um exemplo de etapas básicas de processamento:

1. Prepare os dados: Prepare um arquivo contendo os limites do condado e os dados de precipitação.

2. Importar bibliotecas: importe as bibliotecas necessárias.


importar geopandas como gpd
importar pandas como pd
de scipy.spatial importar Voronoi, voronoi_plot_2d
 

3. Ler dados: Use a biblioteca `geopandas` para ler os dados de limite do município e os dados de precipitação.


county_shapefile = 'your_county_shapefile.shp' # substituído pelo caminho dos dados de limite do condado
precipitation_data = 'your_precipitation_data.csv' # substituído pelo caminho dos dados de precipitação

condados = gpd.read_file(county_shapefile)
precipitação = pd.read_csv(precipitation_data)
 

4. Calcule o polígono de Thiessen: Use a função `scipy.spatial.Voronoi` para calcular o polígono de Thiessen.


# Extraia as coordenadas do ponto central dos
pontos do município = condados.geometry.centroid

# Calcula o polígono de Thiessen
vor = Voronoi(pontos)
 

5. Distribuição da precipitação: De acordo com o polígono de Thiessen, a precipitação distribui-se pelo interior de cada concelho.


# Crie uma nova coluna para armazenar a precipitação em cada município condados
['precipitação'] = 0

# Atravessando cada região no polígono de Thiessen, atribuindo precipitação ao município correspondente
para region_id, (region_vertices, county_id) em enumerate(zip(vor.regions, vor.point_region)):
    if not -1 in region_vertices and len(region_vertices) > 0: precipitation_value = precipitation.iloc[county_id]['precipitation'] # Obter valor de precipitação         counties.at[county_id, 'precipitation'] += precipitation_value
        de acordo com county_id

 

6. Resultados da visualização: Use a biblioteca `geopandas` para desenhar um mapa do município com informações de precipitação.


condados.plot(coluna='precipitação', cmap='Azuis', legenda=Verdadeiro)
 

Este é apenas um exemplo de etapas básicas de processamento, e o processo e o método específicos variam de acordo com o formato e os requisitos dos dados. Certifique-se de que os dados estejam no formato correto e ajuste de acordo.

おすすめ

転載: blog.csdn.net/2301_77925375/article/details/131493329