搜索和下载哨兵,陆地卫星和行星作物。

tsd的Python项目详细描述


时间序列下载程序(TSD)

Build Status

自动下载哨兵,陆地卫星和行星作物

Carlo de Franchis, CMLA,ENS Cachan,巴黎萨克利大学,2016-19

有来自Enric Meinhardt-LlopisAxel DavyTristan 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脚本,安装所有需要的东西(brewpythongdal…)在一个空的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

注意,这个版本不支持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.pyget_landsat.pyget_planet.pyget_sentinel1.py(每个卫星星座一个文件)。 它们既可以用作命令行脚本,也可以用作python模块。

他们使用Python模块search_devseed.pysearch_scihub.pysearch_peps.pysearch_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运行它们以获取可用选项的列表为了一个 很好的输出格式,将它们的输出管道到jqbrew 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')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java连接在一个屏幕上成功下载,在第二个屏幕上用几乎相同的代码获得错误   java调用super。超级的方法,跳过超级。方法   使用Web服务连接到sharepoint 2013的Java应用程序   java我无法正确呈现editText   httpurlconnection如何在java中检查url连接状态   java Spring Security可以为同一用户接受多个密码吗?   java如何在PreparedStatement中使用自动生成的@Id?   java每个数组表示一个位模式   java我不确定如何记录鼠标在某个区域被点击的次数   spring如何解决:java。lang.NoSuchMethodError:javax。坚持不懈实体管理器。createStoredProcedureQuery(Ljava/lang/String;)   java如何为blackberry中listfield项内的不同字段触发事件   安卓使用Proguard混淆java代码   java在grails 2中与多个数据源有一个和一个域关联。十、   java在尝试在单击按钮时返回combobox值时一直出错   java我可以在setter中使用@Resource注释而不是字段吗?   java Eclipse调试步进不工作   java比较相同对象的两个表并选择不同的表