(二)基于Python的Geotrellis实现-栅格切片的简单案例
直接使用geopyspark提供的测试代码,我这里稍微进行了改造,步骤如下:
1、pycharm创建python项目geotrellis-python-temple。
2、创建py文件:geotrellis-hello.py
3、代码如下:
#引入以下三个包
import geopyspark as gps
from pyspark import SparkContext
from shapely.geometry import boxdef test():#创建spark配置及上下文conf = gps.geopyspark_conf(appName="geopyspark-example")sc = SparkContext(conf=conf)#获取GeoTiff文件并加载#注意路径,windows使用绝对路径并输入file:///标识,linux不需要盘符,由于spark使用本地模式,不需要hdfs#如果使用hdfs,则使用hdfs://l目录raster_layer = gps.geotiff.get(layer_type=gps.LayerType.SPATIAL,uri='file:///D:/geotrellis/data/hum_daily_2003152.tif',#uri='file:///D:/geotrellis/data/MODIS_MODIS_EFinst_250m_2003.tif', #localnum_partitions=100)# 切片图层设置,坐标系设为wgs84,这个建议和输入tif的坐标一致。tiled_layer = raster_layer.tile_to_layout(layout=gps.GlobalLayout(), target_crs=4326)#坐标裁剪范围,按照输入tif的extent设置#area_of_interest = box(138.833923847899, 34.9568230249776, 141.45036774169,37.109457868982)area_of_interest = box(0, -90.25, 360, 90) #hum_daily_2003152#area_of_interest = box(87.5781665097915, 29.10363837291, 103.055919463787, 39.3026410747203) #MODIS_MODIS_EFinst_250m_2003# 根据范围创建切片masked = tiled_layer.mask(geometries=area_of_interest)# 创建金字塔pyramided_mask = masked.pyramid()# 根据金字塔进行切片#注意输出路径,要求同输入路径for pyramid in pyramided_mask.levels.values():gps.write(#uri='file:///D:/geotrellis/data/python_tem1/output',uri='file:///D:/geotrellis/data/python_tem1/output_1', #locallayer_name='north-west-philly',tiled_raster_layer=pyramid)if __name__ == '__main__':test()
4、提交给spark执行
由于我是在windows下部署的spark,所以只能使用local模式进行测试。如下:
spark-submit
--jars D:\pythonSystem\Python37\Lib\site-packages\geopyspark\jars\geotrellis-backend-assembly-0.2.0.jar
—master local
--py-files D:\geotrellis\geotrellis-python-temple\build\geotrellis_hello\base_library.zip
D:\geotrellis\geotrellis-python-temple\geotrellis_hello.py
注意:提交的时候需要同时提交geopyspark的jar包,否则报错。
执行结果如下:
说明切片成功。如果需要展示的话还需要进一步渲染。
(二)基于Python的Geotrellis实现-栅格切片的简单案例相关推荐
- Python调用Gurobi:Assignment Problem(指派问题)简单案例
Python调用Gurobi:简单案例 Python调用Gurobi:Assignment Problem简单案例 1. Assignment Problem Model Python调用Gurobi ...
- python自动回复qq消息_基于python使用qqbot接入qq做一个简单的文字消息自动回复
qqbot是一个免费开源的基于smartqq的python插件,如果默认安装有pip,则可以直接在命令行下执行:pip install qqbot安装qqbot,安装成功后可以在命令行输入qqbot ...
- 基于python爬虫的论文标题_python爬虫——简单论文标题检索-Go语言中文社区
有趣的爬虫,独有的意义召唤着我去学习,去尝试.最近有感于每天对于论文的收集,感觉自己的收集速度赶不上论文的更新速度,同时对于自己想找到的论文的收集比较麻烦.因此,学习用python写一个很简单的爬虫, ...
- 基于Python的发票OCR-数字识别的简单实现
目录 大体思路 1 人为预先设好一些数据矩阵之间进行比较 2 处理的准备 2 开始实践 2 环境搭建 3 数据集准备 4 预处理 5 之后我们对其进行二值化 6 寻找数字 9 预设数据 11 2 fr ...
- 基于Python实现的在线教育系统考试作业案例源代码APP大作业nodejs程序设计微信小程序计算机
- 利用Python实现ARCGIS中栅格计算器的简单功能
1.加法操作 import arcpy from arcpy import envenv.workspace = "E:\\work\\cppservice\\RasterCalc" ...
- arcgis栅格计算器python教程_利用Python实现ARCGIS中栅格计算器的简单功能
1.加法操作 import arcpy from arcpy import env env.workspace = "E:\\work\\cppservice\\RasterCalc&quo ...
- 查看文件二进制编码_小白也能学会系列:用python文件读写代码实例!(简单案例)...
前言: 不久之前,从一个.dat文件中读取波形数据,通过一个自编码网络进行异常检测.所以特意在此写出来,咱从最基础的文件读写开始吧. 先说数据,是一个int16型的数组.说是数组,但是读取也并不简单. ...
- python 随机生成整数 浮点数 字符 排序 简单案例
#coding:utf8 import random# 随机生成0到1之间的浮点数 a=random.random() print(a)# 随机生成固定范围的浮点数 b=random.uniform( ...
最新文章
- 明明白白学C#0.1.2 什么是编程语言
- linux命令vgdisplay提示权限不足,linux常用命令总结
- 11月16日bd之旅意外参加黄波博士讲座
- LeetCode_每日一题今日份_312.戳气球(没懂)
- yii2框架获取刚插入数据库的id (原创)
- 《Redis官方文档》Redis简介
- git21天打卡day12切换分支修改文件
- 拟人拟物法求解不等圆Packing问题
- 2008新版眼保健操图解
- matlab求矩阵特征值的最大值,[转载]MATLAB用eig()函数求【特征值】【特征向量】【归一化...
- 股票和外汇究竟哪个更存在风险呢?
- 定制Linux系统安装盘,syslinux定制系统启动盘
- matlab产生正定矩阵
- 3199. 命令行选项
- 计算机学业水平考试的选择题,信息技术学业水平考试选择题带答案.doc
- Linux系统下如何查看Nvidia显卡芯片型号的两种方法
- Lasso 的 python实现
- vs2017 c++工程编译解析
- 计算机用户被停用,Win10电脑中Administrator账户被停用如何解决
- Python查询12306车票和使用selenium进行买票
热门文章
- ssm毕设项目基于Java通识课程管理系统v87xr(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 利用Java的I/O流实现图片的压缩以及解压
- 猴子吃香蕉过河问题分析与扩展
- AI行动,解放做表打工人
- 【路由器设置※tplink路由器设置方法和详细图解※】
- 【OpenCV】异常: cv::Exception,位于内存位置 0x000000000030F440 处
- echarts top5监控图
- C++ 读写文件(整行读写VSCodeC++环境配置)
- 《埃隆·马斯克,创造未来的人》读后感(一)——童年
- B站狂神说Spring笔记