YANG____GUANG 2024-06-12 09:07 采纳率: 0%
浏览 1

显示内蒙古,气象各站点的位置,请在图上标出

显示内蒙古,气象各站点的位置,请在图上标出
阿尔山:47.1777°N,119.9426°E
霍林郭勒:45.5329°N,119.4275°E
乌拉特中旗:41.5671°N,111.1363°E
四子王旗:41.5284°N,111.7019°E
海拉尔:49.2122°N,119.7584°E
索伦:43.6175°N,121.9665°E
通辽:43.6526°N,122.2438°E
巴林左旗:43.9834°N,119.3919°E

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-12 09:07
    关注

    引自免费微信小程序:皆我百晓生

    要显示内蒙古气象站点的位置,可以使用Python中的matplotlib库结合geopandascartopy库来实现地图绘制和地理位置标记。首先确保安装了必要的库:

    pip install matplotlib geopandas cartopy
    

    接下来是具体的Python代码实现:

    import matplotlib.pyplot as plt
    import geopandas as gpd
    from cartopy import config
    import cartopy.crs as ccrs
    from cartopy.io.shapereader import Reader
    
    # 定义站点坐标
    stations = {
        '阿尔山': (47.1777, 119.9426),
        '霍林郭勒': (45.5329, 119.4275),
        '乌拉特中旗': (41.5671, 111.1363),
        '四子王旗': (41.5284, 111.7019),
        '海拉尔': (49.2122, 119.7584),
        '索伦': (43.6175, 121.9665),
        '通辽': (43.6526, 122.2438),
        '巴林左旗': (43.9834, 119.3919)
    }
    
    # 创建地理DataFrame
    gdf_stations = gpd.GeoDataFrame(
        [(name, *coords) for name, coords in stations.items()],
        columns=['name', 'lat', 'lon'],
        geometry=gpd.points_from_xy([row[2] for row in stations.values()], [row[1] for row in stations.values()])
    )
    
    # 加载中国地图边界数据
    china_map = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')).loc[gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')).iso_a3 == 'CHN']
    
    # 设置地图投影
    ax = plt.axes(projection=ccrs.PlateCarree())
    
    # 绘制中国地图
    china_map.plot(ax=ax, facecolor='lightgray', edgecolor='black', transform=ccrs.PlateCarree())
    
    # 标记站点位置
    gdf_stations.plot(ax=ax, color='red', markersize=5, transform=ccrs.PlateCarree())
    
    # 添加站点名称
    for idx, row in gdf_stations.iterrows():
        ax.text(row['lon'], row['lat'], row['name'], fontsize=8, fontweight='bold', transform=ccrs.PlateCarree(), ha='right')
    
    # 设置地图范围
    ax.set_extent([105, 125, 35, 55], crs=ccrs.PlateCarree())
    
    # 显示地图
    plt.show()
    

    这段代码会创建一个地图,显示内蒙古区域内的气象站点位置,并标注站点名称。注意,由于地图数据源的限制,可能需要调整地图范围(set_extent)以确保所有站点都包含在内。

    如果需要更详细的地图背景(例如城市、河流等),可以考虑使用更详细的地图数据集,例如从自然地球数据集(Natural Earth Data)或OpenStreetMap获取数据。这通常需要额外的数据处理步骤,比如下载特定的地理数据文件并将其加载到geopandasGeoDataFrame中。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月12日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见