【python地理信息绘制入门】cartopy学习

cartopy简介

  • cartopy是一个用于绘制地图投影和地理数据可视化的 Python 库。
  • 它是建立在 matplotlib 的基础上,专门用于制作地图和地理数据的图表。
  • cartopy 的目标是使地图制作变得更加简单和直观,同时提供了一些强大的功能来处理地理数据和投影。

cartopy绘制中国行政地图(cartopy的版本为0.20.0)

  • 省界显示
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader

fig = plt.figure(figsize=(12,8))
# 投影方式
crs = ccrs.PlateCarree()
ax = fig.add_subplot(111, projection=crs)
# 显示范围
extents = [70, 140, 0, 55]
ax.set_extent(extents, crs)

filepath = '.\bou2_4p.shp'
file_nineline = ".\九段线.shp"
reader = shpreader.Reader(filepath)
reader_nineline = shpreader.Reader(file_nineline)
geoms = reader.geometries()
geoms_nineline = reader_nineline.geometries()
# 绘制陆地和九段线
ax.add_geometries(geoms, crs, lw=0.5, fc='none')
ax.add_geometries(geoms_nineline, crs, lw=0.5, fc='none')
reader.close()
reader_nineline.close()
plt.show()

在这里插入图片描述

  • 市级行政单位显示
# 在以上代码中添加市图层即可
city_files = shpreader.Reader(r'.\市.shp')
ax.add_geometries(city_files.geometries(), crs, lw=0.5, fc='none')
reader.close()

在这里插入图片描述

  • 县级行政单位显示
# 在以上代码中添加市图层即可
county_files = shpreader.Reader(r'.\县.shp')
ax.add_geometries(county_file.geometries(), crs, lw=0.5, fc='none')
reader.close()

在这里插入图片描述

cartopy绘制中国行政地图,单一省细分画出市区

  • 有时候我们仅仅关注一个省内细分的市区,而不关注其他省份,那么需要将单一省内的市边界画出
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader

extents = [70, 140, 0, 55]
crs = ccrs.PlateCarree()
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111, projection=crs)
ax.set_extent(extents, crs)

city_reader = shpreader.Reader(r'.\市.shp')
reader = shpreader.Reader('.\bou2_4p.shp')
reader_nineline = shpreader.Reader(".\九段线.shp")
geoms = reader.geometries()
geoms_nineline = reader_nineline.geometries()

# 河南省市区
for record, geos in zip(city_reader.records(),city_reader.geometries()):
    if record.attributes['省'] == '河南省':
        ax.add_geometries([geos], crs, edgecolor='r', facecolor='none', lw=1)
records = city_reader.records()
# 中国地图
ax.add_geometries(geoms, crs, lw=0.5, fc='none')
ax.add_geometries(geoms_nineline, crs, lw=0.5, fc='none')

reader.close()
reader_nineline.close()
city_reader.close()

plt.show()

在这里插入图片描述

cartopy库的一些问题

  • cartopy依赖于shapefile库读取文件,但是在初始化中只设置了一个参数,即文件的名称,没有不定参数的设定。这使得文档编码格式不是UTF-8类型的文件,读取出现乱码,无法使用关键字参数筛选数据。如图所示:
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import shapefile
filepath = '.\bou2_4p.shp'
x = shpreader.Reader(filepath)
for i in x.records():
    print(i.attributes)

shapefile读取bou2_4p.shp文件,NAME中文显示乱码

  • shapefile源码中只设定了filename参数,没有不定参数的设定,导致无法选择encoding参数。
    在这里插入图片描述
  • 因此,在上述画图示例中,如果想使用关键字将“河南省”边界改变比较困难,因此,查看源码,使用以下方法进行修改,完成上述功能。
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
import cartopy.io.shapereader as shpreader
import shapefile
import shapely.geometry as sgeom

# 将shpreader中的geometries方法复制过来
def geometries(reader):
    for shape in reader.iterShapes():
        if shape.shapeType != shapefile.NULL:
            yield sgeom.shape(shape)


extents = [70, 140, 0, 55]
crs = ccrs.PlateCarree()
fig = plt.figure(figsize=(12,8))
ax = fig.add_subplot(111, projection=crs)
ax.set_extent(extents, crs)

filepath = '.\bou2_4p.shp'
file_nineline = ".\九段线.shp"
# 直接使用shapefile进行文件读取
reader = shapefile.Reader(filepath, encoding="gbk")
reader_nineline = shpreader.Reader(file_nineline)
geoms = geometries(reader)
geoms_nineline = reader_nineline.geometries()
ax.add_geometries(geoms, crs, lw=0.5, fc='none')
ax.add_geometries(geoms_nineline, crs, lw=0.5, fc='none')

city_reader = shpreader.Reader(r'.\市.shp')

for record, geos in zip(city_reader.records(),city_reader.geometries()):
    if record.attributes['省'] == '河南省':
        ax.add_geometries([geos], crs, edgecolor='#733b97', facecolor='none', lw=1)
records = city_reader.records()

for record, geos in zip(reader.records(), geometries(reader)):
    colors = {'河南省': "b", "河北省": "g", "山东省": 'r'}
    if record.as_dict()['NAME'] in ['河南省', "河北省", "山东省"]:
        ax.add_geometries([geos], crs, edgecolor=colors[record.as_dict()['NAME']], facecolor='none', lw=1)
records = city_reader.records()

reader.close()
city_reader.close()
reader_nineline.close()

plt.show()

在这里插入图片描述

  • 使用关键字查看、进行数据筛选
for record, geos in zip(reader.records(), geometries(reader)):
    print(record)

在这里插入图片描述
在这里插入图片描述

2024/01/26更新

def plot_province():
    # 将shpreader中的geometries方法复制过来
    def geometries(reader):
        for shape in reader.iterShapes():
            if shape.shapeType != shapefile.NULL:
                yield sgeom.shape(shape)

    extents = [113, 120, 36, 43]
    # extents = [115.6, 116.8, 39, 39.5]
    crs = ccrs.PlateCarree()
    fig = plt.figure(figsize=(12, 6))
    ax = fig.add_subplot(111, projection=crs)
    ax.set_extent(extents, crs)

    county_reader = shpreader.Reader(r'D:\My_Document\Code\Practice\data\全国shp\最新2021年全国行政区划\县.shp')
    city_reader = shpreader.Reader(r'D:\My_Document\Code\Practice\data\全国shp\最新2021年全国行政区划\市.shp')
    prov_reader = shpreader.Reader(r'D:\My_Document\Code\Practice\data\全国shp\最新2021年全国行政区划\省.shp')

    for record, geos in zip(county_reader.records(), county_reader.geometries()):
        if record.attributes['省'] == '河北省':
            ax.add_geometries([geos], crs, edgecolor='gray', facecolor='none', lw=1)

    for record, geos in zip(city_reader.records(), city_reader.geometries()):
        if record.attributes['省'] == '河北省':
            ax.add_geometries([geos], crs, edgecolor='k', facecolor='none', lw=1)

    for record, geos in zip(prov_reader.records(), prov_reader.geometries()):
        if record.attributes['省'] == '河北省':
            ax.add_geometries([geos], crs, edgecolor=np.array([124, 0, 30]) / 255, facecolor='none', lw=1.5)

    # 高速道路信息
    road_render = shpreader.Reader(r'D:\My_Document\Task\项目汇总\202311_区域路网\data\河北\河北\河北高速.shp')
    roads = list(road_render.geometries())
    ax.add_geometries(roads, ccrs.PlateCarree(), facecolor='none', edgecolor=np.array([109, 70, 230]) / 255,
                      linewidth=0.8)

    ax.set_xticks(np.arange(113, 121, 1))
    ax.set_yticks(np.arange(36, 44, 1))
    plt.tick_params(axis='both', which='major', labelsize=18)
    prov_reader.close()
    city_reader.close()
    county_reader.close()
    road_render.close()
    plt.show()

在这里插入图片描述

运行环境

name: pyht
channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - http://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge
  - conda-forge
  - defaults
dependencies:
  - absl-py=1.2.0=pyhd8ed1ab_0
  - aiohttp=3.8.1=py38h294d835_1
  - aiosignal=1.2.0=pyhd8ed1ab_0
  - amqp=5.2.0=pyhd8ed1ab_0
  - annotated-types=0.6.0=pyhd8ed1ab_0
  - appdirs=1.4.4=pyh9f0ad1d_0
  - argon2-cffi=21.3.0=pyhd8ed1ab_0
  - argon2-cffi-bindings=21.2.0=py38h294d835_2
  - asgiref=3.7.2=pyhd8ed1ab_0
  - asttokens=2.0.5=pyhd3eb1b0_0
  - async-timeout=4.0.2=pyhd8ed1ab_0
  - attrs=21.4.0=pyhd8ed1ab_0
  - automat=22.10.0=pyhd8ed1ab_0
  - backcall=0.2.0=pyhd3eb1b0_0
  - backports=1.0=pyhd8ed1ab_3
  - backports.zoneinfo=0.2.1=py38h294d835_5
  - basemap-data=1.3.2=pyhd8ed1ab_2
  - bcrypt=3.2.0=py38h294d835_3
  - beautifulsoup4=4.11.1=pyha770c72_0
  - billiard=4.1.0=py38h91455d4_1
  - blas=1.0=mkl
  - bleach=5.0.0=pyhd8ed1ab_0
  - blinker=1.7.0=pyhd8ed1ab_0
  - blosc=1.21.1=hcbbf2c4_0
  - boost-cpp=1.74.0=h9f4b32c_8
  - boto3=1.33.13=pyhd8ed1ab_0
  - botocore=1.33.13=pyhd8ed1ab_0
  - bottleneck=1.3.4=py38h080aedc_0
  - branca=0.6.0=pyhd8ed1ab_0
  - brotli=1.0.9=ha925a31_2
  - brotlipy=0.7.0=py38h2bbff1b_1003
  - bzip2=1.0.8=he774522_0
  - ca-certificates=2023.11.17=h56e8100_0
  - cachetools=5.0.0=pyhd8ed1ab_0
  - cairo=1.16.0=h15b3021_1010
  - cartopy=0.20.2=py38hd9cf50b_4
  - catalogue=2.0.10=py38haa244fe_0
  - celery=5.3.4=pyhd8ed1ab_1
  - certifi=2023.11.17=pyhd8ed1ab_0
  - cffi=1.15.0=py38h2bbff1b_1
  - cfitsio=4.1.0=h5a969a9_0
  - cftime=1.5.1.1=py38h080aedc_0
  - click=8.1.3=py38haa244fe_0
  - click-didyoumean=0.3.0=pyhd8ed1ab_0
  - click-plugins=1.1.1=py_0
  - click-repl=0.3.0=pyhd8ed1ab_0
  - cligj=0.7.2=pyhd8ed1ab_1
  - cloudpathlib=0.16.0=pyhd8ed1ab_0
  - colorama=0.4.6=pyhd8ed1ab_0
  - confection=0.1.4=py38h009e608_0
  - constantly=15.1.0=py_0
  - cryptography=37.0.1=py38h21b164f_0
  - cssselect=1.2.0=pyhd8ed1ab_0
  - cudatoolkit=10.1.243=h74a9793_0
  - cudnn=7.6.5=cuda10.1_0
  - cupy=8.3.0=py38hd4ca531_0
  - curl=7.82.0=h2bbff1b_0
  - cycler=0.11.0=pyhd3eb1b0_0
  - cymem=2.0.8=py38hd3f51b4_1
  - cython-blis=0.7.10=py38he7056a7_2
  - dataclasses=0.8=pyhc8e2a94_3
  - debugpy=1.5.1=py38hd77b12b_0
  - decorator=5.1.1=pyhd3eb1b0_0
  - defusedxml=0.7.1=pyhd8ed1ab_0
  - django=4.2.7=pyhd8ed1ab_0
  - dominate=2.8.0=pyhd8ed1ab_0
  - entrypoints=0.4=py38haa95532_0
  - exceptiongroup=1.1.1=pyhd8ed1ab_0
  - executing=0.8.3=pyhd3eb1b0_0
  - expat=2.4.8=h39d44d4_0
  - fastrlock=0.8=py38h885f38d_2
  - fiona=1.8.21=py38h19672d5_0
  - flask_cors=3.0.9=pyh9f0ad1d_0
  - flit-core=3.7.1=pyhd8ed1ab_0
  - folium=0.14.0=pyhd8ed1ab_0
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=hab24e00_0
  - fontconfig=2.14.0=hce3cb01_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - fonttools=4.25.0=pyhd3eb1b0_0
  - freeglut=3.2.2=h0e60522_1
  - freetype=2.10.4=hd328e21_0
  - freexl=1.0.6=ha8e266a_0
  - fribidi=1.0.10=h8d14728_0
  - frozenlist=1.3.1=py38h294d835_0
  - future=0.18.2=py38_1
  - gdal=3.4.2=py38hf334de5_5
  - geopandas=0.12.2=pyhd8ed1ab_0
  - geopandas-base=0.12.2=pyha770c72_0
  - geos=3.10.2=h39d44d4_0
  - geotiff=1.7.1=h38b14a8_1
  - gettext=0.19.8.1=ha2e2712_1008
  - graphviz=2.38.0=4
  - hdf4=4.2.15=h0e5069d_3
  - hdf5=1.12.1=nompi_h2a0e4a3_100
  - hyperlink=21.0.0=pyhd3deb0d_0
  - icc_rt=2019.0.0=h0cc432a_1
  - icu=69.1=h0e60522_0
  - importlib-metadata=4.11.3=py38haa244fe_1
  - importlib_resources=5.7.1=pyhd8ed1ab_0
  - incremental=22.10.0=pyhd8ed1ab_0
  - iniconfig=2.0.0=pyhd8ed1ab_0
  - intel-openmp=2021.4.0=haa95532_3556
  - ipykernel=6.9.1=py38haa95532_0
  - ipython=8.2.0=py38haa95532_0
  - ipython_genutils=0.2.0=py_1
  - ipywidgets=7.7.0=pyhd8ed1ab_0
  - itemadapter=0.8.0=pyhd8ed1ab_0
  - itemloaders=1.1.0=pyhd8ed1ab_0
  - itsdangerous=2.1.2=pyhd8ed1ab_0
  - jasper=2.0.33=h77af90b_0
  - jbig=2.1=h8d14728_2003
  - jedi=0.18.1=py38haa95532_1
  - jieba=0.42.1=pyhd8ed1ab_0
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jmespath=1.0.1=pyhd8ed1ab_0
  - joblib=1.2.0=pyhd8ed1ab_0
  - jpeg=9e=h8ffe710_1
  - jpype1=0.7=py38h79cbd7a_0
  - jsonschema=4.4.0=pyhd8ed1ab_0
  - jupyter_client=7.1.2=pyhd3eb1b0_0
  - jupyter_core=4.9.2=py38haa95532_0
  - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0
  - jupyterlab_widgets=1.1.0=pyhd8ed1ab_0
  - kealib=1.4.14=h8995ca9_3
  - kiwisolver=1.3.2=py38hd77b12b_0
  - kombu=5.3.4=py38haa244fe_0
  - krb5=1.19.3=h1176d77_0
  - langcodes=3.3.0=pyhd8ed1ab_0
  - lcms2=2.12=h2a16943_0
  - lerc=3.0=h0e60522_0
  - libaec=1.0.6=h39d44d4_0
  - libblas=3.9.0=1_h8933c1f_netlib
  - libcblas=3.9.0=5_hd5c7e75_netlib
  - libcurl=7.82.0=h86230a5_0
  - libdeflate=1.10=h8ffe710_0
  - libffi=3.4.2=h8ffe710_5
  - libgdal=3.4.2=h0bdba65_5
  - libglib=2.70.2=h3be07f2_4
  - libiconv=1.16=he774522_0
  - libkml=1.3.0=h9859afa_1014
  - liblapack=3.9.0=5_hd5c7e75_netlib
  - libnetcdf=4.8.1=nompi_h1cc8e9d_101
  - libpng=1.6.37=h2a8f88b_0
  - libpq=14.2=hfcc5ef8_0
  - libprotobuf=3.13.0.1=h200bbdf_0
  - librttopo=1.1.0=hb1df466_9
  - libspatialindex=1.9.3=h39d44d4_4
  - libspatialite=5.0.1=h36c16d9_15
  - libssh2=1.9.0=h7a1dbc1_1
  - libtiff=4.3.0=hc4061b1_3
  - libuv=1.40.0=he774522_0
  - libwebp=1.2.2=h2bbff1b_0
  - libwebp-base=1.2.2=h8ffe710_1
  - libxcb=1.13=hcd874cb_1004
  - libxml2=2.9.14=hf5bbc77_0
  - libxslt=1.1.35=h2bbff1b_0
  - libzip=1.8.0=hfed4ece_1
  - libzlib=1.2.11=h8ffe710_1014
  - lxml=4.9.1=py38h294d835_0
  - lz4-c=1.9.3=h2bbff1b_1
  - m2w64-gcc-libgfortran=5.3.0=6
  - m2w64-gcc-libs=5.3.0=7
  - m2w64-gcc-libs-core=5.3.0=7
  - m2w64-gmp=6.1.0=2
  - m2w64-libwinpthread-git=5.0.0.4634.697f757=2
  - mapclassify=2.5.0=pyhd8ed1ab_1
  - markdown=3.4.1=pyhd8ed1ab_0
  - markupsafe=2.1.1=py38h294d835_1
  - matplotlib=3.5.1=py38haa95532_1
  - matplotlib-base=3.5.1=py38hd77b12b_1
  - matplotlib-inline=0.1.2=pyhd3eb1b0_2
  - mistune=0.8.4=py38h294d835_1005
  - mkl=2020.4=hb70f87d_311
  - mkl-include=2023.1.0=h6a75c08_48682
  - mkl-service=2.3.0=py38h1e8a9f7_2
  - mkl_fft=1.3.0=py38h347fdf6_1
  - mkl_random=1.2.0=py38h251f6bf_1
  - msys2-conda-epoch=20160418=1
  - multidict=6.0.2=py38h294d835_1
  - munch=2.5.0=py_0
  - munkres=1.1.4=py_0
  - murmurhash=1.0.10=py38hd3f51b4_1
  - nbclient=0.6.0=pyhd8ed1ab_0
  - nbconvert=6.5.0=pyhd8ed1ab_0
  - nbconvert-core=6.5.0=pyhd8ed1ab_0
  - nbconvert-pandoc=6.5.0=pyhd8ed1ab_0
  - nbformat=5.3.0=pyhd8ed1ab_0
  - nest-asyncio=1.5.5=py38haa95532_0
  - networkx=3.0=pyhd8ed1ab_0
  - ninja=1.10.2=py38h559b2a2_3
  - nltk=3.8.1=pyhd8ed1ab_0
  - notebook=6.4.11=pyha770c72_0
  - numexpr=2.7.3=py38h5d928e2_2
  - oauthlib=3.2.0=pyhd8ed1ab_0
  - olefile=0.46=pyh9f0ad1d_1
  - onnx=1.7.0=py38h9b96a75_5
  - openjdk=21.0.1=h57928b3_0
  - openjpeg=2.4.0=hb211442_1
  - openssl=1.1.1w=hcfcfb64_0
  - packaging=21.3=pyhd3eb1b0_0
  - pandoc=2.18=h57928b3_0
  - pandocfilters=1.5.0=pyhd8ed1ab_0
  - parsel=1.8.1=pyhd8ed1ab_0
  - parso=0.8.3=pyhd3eb1b0_0
  - pathy=0.10.2=pyhd8ed1ab_0
  - pcre=8.45=h0e60522_0
  - pickleshare=0.7.5=pyhd3eb1b0_1003
  - pixman=0.40.0=h8ffe710_0
  - pluggy=1.0.0=pyhd8ed1ab_5
  - poppler=22.01.0=h24fffdf_2
  - poppler-data=0.4.11=hd8ed1ab_0
  - postgresql=14.2=h1c22c4f_0
  - preshed=3.0.9=py38hd3f51b4_1
  - proj=9.0.0=h1cfcee9_1
  - prometheus_client=0.14.1=pyhd8ed1ab_0
  - prompt-toolkit=3.0.42=pyha770c72_0
  - prompt_toolkit=3.0.42=hd8ed1ab_0
  - protego=0.3.0=pyhd8ed1ab_0
  - pthread-stubs=0.4=hcd874cb_1001
  - pure_eval=0.2.2=pyhd3eb1b0_0
  - pyasn1=0.4.8=py_0
  - pyasn1-modules=0.2.7=py_0
  - pycparser=2.21=pyhd3eb1b0_0
  - pydantic-core=2.14.6=py38h4900a04_1
  - pydispatcher=2.0.5=py_1
  - pygments=2.11.2=pyhd3eb1b0_0
  - pyjwt=2.4.0=pyhd8ed1ab_0
  - pyopenssl=22.0.0=pyhd3eb1b0_0
  - pyparsing=3.0.4=pyhd3eb1b0_0
  - pyproj=3.3.1=py38h954eab8_0
  - pyqt=5.12.3=py38haa244fe_8
  - pyqt-impl=5.12.3=py38h885f38d_8
  - pyqt5-sip=4.19.18=py38h885f38d_8
  - pyqtchart=5.12=py38h885f38d_8
  - pyqtwebengine=5.12.1=py38h885f38d_8
  - pyrsistent=0.18.1=py38h294d835_1
  - pyshp=2.1.3=pyh44b312d_0
  - pysocks=1.7.1=py38haa95532_0
  - pytest=7.3.1=pyhd8ed1ab_0
  - python=3.8.13=h6244533_0
  - python-dateutil=2.8.2=pyhd3eb1b0_0
  - python-fastjsonschema=2.15.3=pyhd8ed1ab_0
  - python-tzdata=2023.3=pyhd8ed1ab_0
  - python_abi=3.8=2_cp38
  - pytz=2021.3=pyhd3eb1b0_0
  - pyu2f=0.1.5=pyhd8ed1ab_0
  - pywin32=302=py38h2bbff1b_2
  - pywinpty=2.0.2=py38h5da7b33_0
  - pyzmq=22.3.0=py38hd77b12b_2
  - qt=5.12.9=h556501e_6
  - queuelib=1.6.2=pyhd8ed1ab_0
  - requests-file=1.5.1=pyh9f0ad1d_0
  - requests-oauthlib=1.3.1=pyhd8ed1ab_0
  - rsa=4.9=pyhd8ed1ab_0
  - rtree=1.0.1=py38h8b54edf_1
  - s3transfer=0.8.2=pyhd8ed1ab_0
  - scrapy=2.10.1=py38haa244fe_0
  - selenium=3.141.0=py38h2bbff1b_1000
  - send2trash=1.8.0=pyhd8ed1ab_0
  - service_identity=18.1.0=py_0
  - shellingham=1.5.4=pyhd8ed1ab_0
  - sip=4.19.13=py38hd77b12b_0
  - six=1.15.0=pyh9f0ad1d_0
  - smart_open=5.2.1=pyhd8ed1ab_0
  - snappy=1.1.8=ha925a31_3
  - soupsieve=2.3.1=pyhd8ed1ab_0
  - spacy=3.7.2=py38h153b517_0
  - spacy-legacy=3.0.12=pyhd8ed1ab_0
  - spacy-loggers=1.0.5=pyhd8ed1ab_0
  - sqlite=3.38.2=h2bbff1b_0
  - sqlparse=0.4.4=pyhd8ed1ab_0
  - srsly=2.4.8=py38hd3f51b4_1
  - stack_data=0.2.0=pyhd3eb1b0_0
  - symlink-exe-runtime=1.0=hcfcfb64_0
  - tensorboard-plugin-wit=1.8.1=pyhd8ed1ab_0
  - tensorboardx=2.5.1=pyhd8ed1ab_0
  - terminado=0.13.1=py38haa95532_0
  - thinc=8.2.2=py38h153b517_0
  - threadpoolctl=3.1.0=pyh8a188c0_0
  - tiledb=2.7.2=h95dad36_0
  - tinycss2=1.1.1=pyhd8ed1ab_0
  - tk=8.6.11=h2bbff1b_0
  - tldextract=3.5.0=pyhd8ed1ab_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - tornado=6.1=py38h2bbff1b_0
  - traitlets=5.1.1=pyhd3eb1b0_0
  - twisted=22.10.0=py38h2bbff1b_0
  - twisted-iocpsupport=1.0.2=py38h2bbff1b_0
  - typer=0.4.2=pyhd8ed1ab_0
  - typing_extensions=4.9.0=pyha770c72_0
  - tzdata=2023c=h71feb2d_0
  - ucrt=10.0.22621.0=h57928b3_0
  - urllib3=1.26.9=py38haa95532_0
  - vc=14.2=h21ff451_1
  - vc14_runtime=14.36.32532=hdcecf7f_17
  - vine=5.0.0=pyhd8ed1ab_1
  - vs2015_runtime=14.36.32532=h05e6639_17
  - w3lib=2.1.2=pyhd8ed1ab_0
  - wasabi=1.1.2=py38haa244fe_0
  - wcwidth=0.2.5=pyhd3eb1b0_0
  - weasel=0.3.4=pyhd8ed1ab_0
  - webencodings=0.5.1=py_1
  - werkzeug=3.0.1=pyhd8ed1ab_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - widgetsnbextension=3.6.0=py38haa244fe_0
  - win_inet_pton=1.1.0=py38haa95532_0
  - wincertstore=0.2=py38haa95532_2
  - winpty=0.4.3=4
  - xerces-c=3.2.3=h0e60522_4
  - xorg-libxau=1.0.11=hcd874cb_0
  - xorg-libxdmcp=1.1.3=hcd874cb_0
  - xyzservices=2023.2.0=pyhd8ed1ab_0
  - xz=5.2.5=h62dcd97_0
  - yarl=1.7.2=py38h294d835_2
  - zipp=3.8.0=pyhd8ed1ab_0
  - zlib=1.2.11=h8ffe710_1014
  - zope=1.0=py38_1
  - zope.interface=5.4.0=py38h2bbff1b_0
  - zstd=1.5.2=h6255e5f_0
  - pip:
    - anyio==4.2.0
    - astral==3.2
    - astunparse==1.6.3
    - babel==2.12.1
    - basemap==1.3.2
    - bokeh==3.1.1
    - bz2file==0.98
    - cdo==1.5.6
    - cdsapi==0.5.1
    - cfgrib==0.9.10.1
    - chardet==4.0.0
    - charset-normalizer==2.0.12
    - cityscapesscripts==2.2.0
    - cmaps==2.0.1
    - cmocean==2.0
    - coloredlogs==15.0.1
    - contourpy==1.1.0
    - cython==0.29.30
    - d2l==0.17.0
    - datetime==5.1
    - dbfread==2.0.7
    - dill==0.3.7
    - eccodes==1.4.1
    - ecmwf-api-client==1.5.0
    - einops==0.6.1
    - emd-signal==1.5.2
    - en-core-web-sm==3.7.1
    - ephem==4.1.4
    - et-xmlfile==1.1.0
    - fake-useragent==1.4.0
    - fasttext==0.9.2
    - fasttext-wheel==0.9.2
    - filelock==3.12.2
    - findlibs==0.0.2
    - flask==3.0.0
    - flask-cors==4.0.0
    - flatbuffers==23.5.26
    - frykit==0.2.2
    - fsspec==2022.8.2
    - gast==0.4.0
    - geffnet==1.0.2
    - geographiclib==2.0
    - geopy==2.3.0
    - google-auth==2.26.2
    - google-auth-oauthlib==1.0.0
    - google-pasta==0.2.0
    - googletrans==2.4.0
    - grpcio==1.60.0
    - h11==0.14.0
    - h5py==3.9.0
    - hanlp==2.1.0b55
    - hanlp-common==0.0.19
    - hanlp-downloader==0.0.25
    - hanlp-trie==0.0.5
    - httpcore==1.0.2
    - httpx==0.26.0
    - huggingface-hub==0.16.4
    - humanfriendly==10.0
    - idna==2.10
    - imageio==2.31.1
    - jsonpatch==1.32
    - jsonpointer==2.3
    - jupyter==1.0.0
    - jupyter-console==6.4.3
    - kaleido==0.2.1
    - keras==2.13.1
    - lazy-loader==0.3
    - libclang==16.0.6
    - metpy==1.5.1
    - mpmath==1.3.0
    - multiprocess==0.70.15
    - mylib==0.0.1
    - mysqlclient==2.2.0
    - netcdf4==1.5.8
    - nixtlats==0.1.19
    - numpy==1.24.2
    - openai==0.27.4
    - opencv-python==4.5.5
    - openpyxl==3.1.2
    - opt-einsum==3.3.0
    - palettable==3.3.3
    - pandas==1.2.4
    - pandas-bokeh==0.5.5
    - parameter==0.0.3.dev2
    - pathos==0.3.1
    - pdfkit==1.0.0
    - penman==1.2.1
    - perin-parser==0.0.12
    - phrasetree==0.0.8
    - pillow==10.2.0
    - pint==0.21.1
    - pip==23.1.2
    - platformdirs==3.11.0
    - plotly==5.13.0
    - pooch==1.8.0
    - portalocker==2.8.2
    - pox==0.3.3
    - ppft==1.7.6.7
    - prettytable==3.7.0
    - proplot==0.9.5
    - protobuf==4.25.2
    - pybind11==2.11.1
    - pydantic==1.10.14
    - pydeprecate==0.3.2
    - pydot==1.4.2
    - pydotplus==2.0.2
    - pydotz==1.5.1
    - pygrib==2.1.4
    - pyhdf==0.11.3
    - pykrige==1.7.0
    - pymysql==1.1.0
    - pynvml==11.5.0
    - pyproject==1.3.1
    - pyquaternion==0.9.9
    - pyreadline3==3.4.1
    - python-graphviz==0.20.1
    - pytorch-lightning==1.7.6
    - pywavelets==1.4.1
    - pyyaml==6.0
    - qtconsole==5.3.0
    - qtpy==2.1.0
    - regex==2023.6.3
    - requests==2.25.1
    - safetensors==0.3.1
    - scikit-image==0.21.0
    - scikit-learn==1.3.0
    - scipy==1.9.3
    - seaborn==0.11.2
    - sentencepiece==0.1.99
    - setuptools==62.2.0
    - shapely==1.8.2
    - simpleitk==2.2.1
    - sklearn==0.0
    - sniffio==1.3.0
    - sympy==1.12
    - tenacity==8.2.1
    - tensorboard==2.13.0
    - tensorboard-data-server==0.7.2
    - tensorflow==2.13.0
    - tensorflow-estimator==2.13.0
    - tensorflow-intel==2.13.0
    - tensorflow-io-gcs-filesystem==0.31.0
    - tensorwatch==0.9.1
    - termcolor==2.4.0
    - tifffile==2023.2.3
    - tkcalendar==1.6.1
    - tokenizers==0.13.3
    - toposort==1.5
    - torch==1.10.2
    - torch-tb-profiler==0.4.0
    - torchaudio==0.11.0
    - torchdata==0.7.1
    - torchmetrics==0.9.3
    - torchsummary==1.5.1
    - torchtext==0.16.2
    - torchvision==0.12.0
    - tqdm==4.64.0
    - transformers==4.31.0
    - typing==3.7.4.3
    - typing-extensions==4.5.0
    - utils==1.0.1
    - utilsforecast==0.0.24
    - visdom==0.2.4
    - websocket-client==1.5.1
    - wordcloud==1.9.3
    - wrapt==1.16.0
    - xarray==2022.3.0
    - xl==0.0.4
    - xlrd==2.0.1
    - xlsxwriter==3.1.9
    - zope-interface==6.0
prefix: D:\ProgramFiles\Anoconda3\envs\pyht
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值