环境配置 - windows下安装salem库

salem作为一个高贵的库,和众多module打架,鹤立鸡群,绝不同流合污。安装过程中会存在许许多多的困难,要么就是salem安装存在问题,要们就是安装完毕后和cartopy打架的问题。
我为这个库付出了太多,为了以后自己进所里给工位倒腾环境时能够省时省力,特写这篇文章。
salem是直接对nc文件裁剪/白化,它不改变原文件的大小,换句话说,源格点数据lat×lon是多少,输出后的数据的lat×lon就是多少。这个跟arcgis裁剪栅格文件略微有点不同,arcgis会改变源数据的大小。

0 添加源

  1. 配置清华源
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
    conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    conda config --append channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

conda config --set show_channel_urls yes

  1. 修改conda配置信息
    windows系统:在C:\Users\name路径下,找到.condarc文件,用记事本打开。
    因为这个文件时隐藏的,点击查看,显示隐藏文件即可。
    将里面的内容替换成下面的内容:
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/fastai/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
show_channel_urls: true
ssl_verify: false

保存退出即可。

1 Anaconda创建环境

conda create -n your_env_name python=x.x

建议下载3.9,3.11版本cartopy安装不了

2 安装依赖

2.1 一些基础包

创建完毕后,安装包,顺序参考salem官网
下载
下载上面红色圈出来的包,都用conda install的方式下载(或加上coda-forge)

2.2 下载geopandas

  1. geopandas也有几个以来module,先去下载轮子

使用crtl+F搜索对应的包

  1. 使用pip install安装包

安装顺序:GDAL,Pyproj,Shapely,Fiona,geopandas

2.3 安装matplotlib(这个顺序无所谓)

conda install matplotlib

3 安装salem

conda install salem

一定要用conda install

4 最后安装cartopy

conda install cartopy

5 另附上代码

  • 我一般是最后进行裁剪/白化的工作
  • 如果有大批量的nc需要裁剪的话,不建议用salem一个个裁剪,可能会比较慢。我一般用的方法是:
    • 先将源数据裁剪,保存为边界文件(代码见下)
    • 最后所有的预处理工作都做完了,再读取边界文件,乘上0,得到edge
    • 将要处理的大量nc文件加上edge即可
import numpy as np
import xarray as xr
import geopandas as geo
import salem

##使用shp文件进行裁剪
shp = geo.read_file("D:/paper/work/xx.shp") ##读取shp文件
data = xr.open_dataset("D:/paper/work/raw.nc")  ##读取需要白化的数据

CNE = data.salem.roi(shape = shp)  ##裁剪数据,直接对nc文件进行裁剪
CNE.to_netcdf(path = "D:/paper/work/bound.nc")  ##保存边界文件
  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值