搜索和下载哨兵,陆地卫星和行星作物。
tsd的Python项目详细描述
时间序列下载程序(TSD)
自动下载哨兵,陆地卫星和行星作物
Carlo de Franchis, CMLA,ENS Cachan,巴黎萨克利大学,2016-19
有来自Enric Meinhardt-Llopis、Axel Davy和Tristan Dagobert的贡献
此软件的主要源代码存储库是https://github.com/cmla/tsd。
安装和依赖项
格达尔
主要依赖关系是gdal。其他的都可以安装
与pip
一起使用,如next section中所示
在ubuntu
gdal
可以与apt-get
一起安装。为了得到一个
最新版本我们建议添加PPA ubuntugis-unstable
(首先
下面的命令:
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get update
sudo apt-get install libgdal-dev gdal-bin
在macos上
有几种安装gdal
的方法。我建议选择1
给出了一个与JP2文件一起工作的gdal 2.3版本
Note:一个shell脚本,安装所有需要的东西(brew
,python
,
gdal
…)在一个空的macOS系统上
macos_install_from_scratch.sh。
选项1:使用gdal完全兼容框架。
Download
并安装.dmg
文件在安装后通过以下方式更新PATH
运行此命令:
export PATH="/Library/Frameworks/GDAL.framework/Programs:$PATH"
复制到您的~/.profile
中
选项2:使用brew
brew install gdal --with-complete
brew install gdal --with-complete
注意,这个版本不支持JP2文件(因此它将无法获取 哨兵-2作物)
将tsd作为python包安装
一旦gdal
安装到您的计算机上,您就可以使用pip
安装tsd
:
git clone https://github.com/cmla/tsd
cd tsd
pip install numpy # required by rasterio
pip install -e . --no-binary rasterio
或者,也可以在不下载tarball或git克隆的情况下安装tsd
:
pip install --upgrade https://github.com/cmla/tsd/tarball/master --no-binary rasterio
用法
搜索和下载由get_sentinel2.py
,get_landsat.py
,
get_planet.py
和get_sentinel1.py
(每个卫星星座一个文件)。
它们既可以用作命令行脚本,也可以用作python模块。
他们使用Python模块search_devseed.py
,search_scihub.py
,
search_peps.py
和search_planet.py
(每个api提供程序一个文件)。
从命令行
tsd可以通过python脚本从命令行使用
get_*.py
。例如,下载并处理
Jamnagar炼油厂,位于纬度22.34806和经度69.86889,运行
python get_sentinel2.py --lat 22.34806 --lon 69.86889 -b B02 B03 B04 -o test
这将从第2、3和4波段下载5000 x 5000米大小的作物,
对应于蓝色、绿色和红色通道,并将其存储在Geotif中
test
目录中的文件
它应该在stdout
上打印类似的内容(图像的数量可能会有所不同):
Found 22 images
Elapsed time: 0:00:02.301129
Downloading 66 crops (22 images with 3 bands)... 66 / 66
Elapsed time: 0:00:57.620805
Reading 22 cloud masks... 22 / 22
6 cloudy images out of 22
Elapsed time: 0:00:15.066992
超过一半像素被云覆盖的图像(根据
Sentinel-2图像元数据或Landsat-8图像中提供的云多边形
质量带)在test/cloudy
子文件夹中移动
要指定所需的频带,请使用-b
或--band
标志。作物大小可以
用--width
和--height
标志更改。例如
python get_sentinel2.py --lat 22.34806 --lon 69.86889 -b B11 B12 --width 8000 --height 6000
下载8000 x 6000米大小的作物,仅用于SWIR频道(波段11 和12)
所有可用选项都用-h
或--help
标记列出:
python get_sentinel2.py -h
也可以从命令行运行任何search_*.py
脚本
另外使用-h
运行它们以获取可用选项的列表为了一个
很好的输出格式,将它们的输出管道到jq
(brew install jq
)。
python search_devseed.py --lat 22.34806 --lon 69.86889 | jq
作为python模块
可以导入python模块来从python调用它们的函数。参考 以获取使用信息。这里有一些例子。
# define an area of interest
import tsd
lat, lon = 42, 3
aoi = tsd.utils.geojson_geometry_object(lat, lon, 5000, 5000)
# search Landsat-8 images available on the AOI with Development Seed's API
x = tsd.search_devseed.search(aoi, satellite='Landsat-8')