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源码中只设定了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