首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用geoplot.kdeplot处理地质灾害的问题

用geoplot.kdeplot处理地质灾害的问题
EN

Stack Overflow用户
提问于 2022-09-17 08:56:18
回答 1查看 88关注 0票数 0

我试着用地质公园来做一件事。

这是我的密码:

下载形状文件

代码语言:javascript
复制
URL = "https://data.sfgov.org/api/geospatial/wkhw-cjsf?method=export&format=Shapefile"
response = requests.get(URL)
open('pd_data.zip', 'wb').write(response.content)

with zipfile.ZipFile('./pd_data.zip', 'r') as zip_ref:
    zip_ref.extractall('./ShapeFiles')

制作地质雷达数据帧

代码语言:javascript
复制
data = train.groupby(['PdDistrict']).count().iloc[:,0]
data = pd.DataFrame({ "district": data.index,
                    "incidences": data.values})

california_map = str(list(pathlib.Path('./ShapeFiles').glob('*.shp'))[0])

gdf = gdp.read_file(california_map)
gdf = pd.merge(gdf, data, on = 'district')

注意:,我没有包括到火车集合的链接,因为这对这个问题不重要(使用任何你想要的数据)

--这是我没有得到的部分,我应该把哪些参数传递给kdeplot函数,比如在哪里传递形状文件,在哪里传递数据?

代码语言:javascript
复制
ax = gplt.kdeplot(
    data, clip=gdf.geometry,
    shade=True, cmap='Reds',
    projection=gplt.crs.AlbersEqualArea())
gplt.polyplot(boroughs, ax=ax, zorder=1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-17 14:44:10

  • 在设置没有内核崩溃的环境时遇到了一些困难。使用shapelypygeos的无轮版本
  • 文档克布利特中包含的一些内容基本的kdeplot以点态数据作为输入。您没有为data提供示例,我不确定它是否为逐点数据。有模拟点的数据,每个区域内的100个点在参考几何。
  • 我发现我不能同时使用clipprojection参数。一个或另一个不是两者兼而有之
  • 形状文件被传递到剪辑。
代码语言:javascript
复制
import geopandas as gpd
import pandas as pd
import numpy as np
import geoplot as gplt
import geoplot.crs as gcrs

# setup starting point to match question
url = "https://data.sfgov.org/api/geospatial/wkhw-cjsf?method=export&format=Shapefile"
gdf = gpd.read_file(url)

# generate 100 points in each of the districts
r = np.random.RandomState(42)
N = 5000
data = pd.concat(
    [
        gpd.GeoSeries(
            gpd.points_from_xy(*[r.uniform(*g.bounds[s::2], N) for s in (0, 1)]),
            crs=gdf.crs,
        ).loc[lambda s: s.intersects(g.buffer(-0.003))]
        for _, g in gdf["geometry"].iteritems()
    ]
)
data = (
    gpd.GeoDataFrame(geometry=data)
    .sjoin(gdf)
    .groupby("district")
    .sample(100, random_state=42)
    .reset_index(drop=True)
)

ax = gplt.kdeplot(
    data,
    clip=gdf,
    fill=True,
    cmap="Reds",
    # projection=gplt.crs.AlbersEqualArea(),
)
gplt.polyplot(gdf, ax=ax, zorder=1)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73753508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档