历时6个月的公测,PIE-Engine正式版终于和大家见面了!感谢广大遥感用户的测试和反馈,感谢合作单位的大力支持,感谢同事们的辛勤工作。目前平台的注册用户逐渐增长到3万人,每天我们都会收到不少用户的批评和建议。经过这半年的公测和打磨,PIE-Engine在功能、性能和稳定性上获得了长足的进展。在此次发布的正式版中,我们很高兴为大家介绍以下几个方面的重要更新内容
算法更完善——增加5种经典机器学习分类算法
PIE-Engine目前提供的经典机器学习分类算法包括两大类共5种
-
监督分类算法
(1)正态贝叶斯(normalBayes)
(2)随机森林(rTrees)
(3)支持向量机(svm)
-
非监督分类算法
(1) K均值(kMeans)
(2) 最大期望(em)
机器学习算法的引入填补了PIE-Engine在遥感影像分类方面的空白,为关注遥感应用研究的用户提供了更有效的数据分析手段。
监督分类(Supervised Classification)是遥感图像分类的一种,它通过使用被确认类别的样本像元去识别其他未知类别的像元。正态贝叶斯(Normal Bayes)可以处理特征值是连续数值的分类问题,核心对象为pie.Classifier.normalBayes。随机森林(Random Forest)是一种由决策树构成的集成算法,预测准确率较高,对异常值、噪声具有很好的容忍度且不易过拟合,核心对象为pie.Classifier.rTrees。支持向量机(Support Vector Machine)是一种基于统计学理论的机器学习方法,在解决小样本、非线性和高维模式识别的问题中表现出了许多特有的优势,核心对象为pie.Classifier.svm。使用上述分类器的主要编程步骤如下(完整样例代码请参看在线文档)
1.按比例分割样本(训练样本和验证样本)
向下滑动阅览
// image为加载的样本影像,按比例分成训练样本和验证样本
var sample = image.sampleRegions(ftrCol, ["type","random"], 50000);
var sample1 = sample.filter(pie.Filter.lte("random", 0.8));
var sample2 = sample.filter(pie.Filter.gt("random", 0.2));
2.构建分类器
向下滑动阅览
// 构建分类器并训练数据
// 正态贝叶斯
var classifer = pie.Classifier.normalBayes().train(sample1, "type", ["B1", "B2", "B3"]);
// 随机森林
var classifer = pie.Classifier.rTrees().train(sample1, "landcover", ["B1", "B2", "B3"]);
// 支持向量机
var classifer = pie.Classifier.svm().train(sample1, "type", ["B1", "B2", "B3"]);
3. 计算结果
// img为待分类的影像,执行分类并得到结果
var result = img.classify(classifer, "classified");
4. 精度验证
向下滑动阅览
// 评估训练样本的精度
var checkM = classifer.confusionMatrix();
// 评估验证样本的精度
var predictResult = sample2.classify(classifer, "classification");
var errorM = predictResult.errorMatrix("type", "classification");
非监督分类(Unsupervised classification)是指事先对分类过程不施加任何先验知识,根据遥感影像地物的光谱特征分布规律进行分类的算法。K均值(K-means Clustering Algorithm)是一种迭代求解的聚类分析算法,易于描述、时间效率高且适于处理大规模数据,核心对象为pie.Clusterer.kMeans。最大期望(Expectation-Maximization)是一种通过迭代进行极大似然估计的优化算法,通常作为牛顿迭代法(Newton-Rapson method)的替代,用于含隐变量(latent variable)或缺失数据(incomplete-data)的概率模型进行参数估计,核心对象为pie.Clusterer.em。使用上述分类器的主要编程步骤如下
1.在指定分辨率条件下随机采集样本
向下滑动阅览
// 针对影像img在30米分辨率下随机采集200个样本
var training = img.sample(geometry, 30, "", "", 200);
2. 构建分类器
向下滑动阅览
// 构建分类器并进行训练
var cluster = pie.Clusterer.kMeans(6).train(training);
3. 计算结果
向下滑动阅览
// 分类数据并显示
var result = img.cluster(cluster, "classified");
支持向量机分类结果
K均值分类结果
机器学习算法具体案例请参考在线文档中“专题应用”下的“经典机器学习分类”专题。
交互更便捷——新增16类可编程交互式UI组件
PIE-Engine新增了丰富的交互式可编程UI组件。可编程UI组件的出现为专业用户提供了一个可以直接使用、分享以及探讨遥感技术的方式,降低了不了解编程技术的用户使用平台上数据和算法的门槛。
目前PIE-Engine提供的UI组件包括静态文本、表格、单选框、文本输入框、颜色选择器、日期选择器、数字输入框、复选框、开关按钮、滑动条、下拉列表、按钮等,今后我们还将进一步提供更多样更灵活的组件。
UI组件综合展示
下面以几个比较有代表性的例子,展示如何编写UI界面
1.按钮组件
向下滑动阅览
// 创建Button以显示北京(110000)的行政区划矢量
var btn1 = ui.Button({label: "显示北京",
type: "success",
onClick: ShowDistrict("110000"),});
// 从矢量数据集中筛选并显示指定编码的行政区划
function ShowDistrict(code) {
var fCol = pie.FeatureCollection("NGCC/CHINA_PROVINCE_BOUNDARY");
var roi = fCol.filter(pie.Filter.eq("code", parseInt(code)))
.first().geometry();
Map.centerObject(roi, 6);
Map.addLayer(roi, {color:"#ff0000", fillColor:"#00000000"}, code);
}
按钮组件及执行结果
2. 复选框组件
向下滑动阅览
function changeDataset(value) {
print("选择的数据集: " + value);
}
var checkbox = ui.Checkbox({
label: ["Landsat-8", "Sentinel-2", "GF-1"],
value: ["Landsat-8", "GF-1"],
disabled: ["Sentinel-2"],
onChange: changeDataset,
});
// 可以将组件添加到Panel容器中控制布局
var chkPanel = ui.Panel({
widgets: [checkbox],
layout: ui.Layout.flow("horizontal")
});
// 添加到界面上显示
ui.root.add(chkPanel);
复选框组件
3. 日期选择框
向下滑动阅览
function funDateSelect(value) {
print("选择的日期" + value);
}
// 可以选择单个日期或者日期范围
var dateSelect = ui.DateSelect({
type: "daterange",
placeholder: "请输入日期范围",
value: ["2016-01-01", "2020-01-01"],
onChange: funDateSelect,
disabled: false,
});
ui.root.add(dateSelect);
日期选择组件
UI组件的完整说明请见在线文档的“函数说明”部分下“Javascript函数说明”的“ui”包,案例可以参看在线示例脚本下“User Interface”中的“PIEUIApp”。
数据更丰富——多达106种遥感影像及产品数据集
目前PIE-Engine接入的数据集已达到106种,总数据量约3PB,日更新量持续保持在10-14TB。最近我们新增了光学、微波、气象、土壤、地图标注、粮食、地表覆盖、MODIS专题产品以及高分/资源等国产卫星数据。详情如下
1、高分及资源系列数据8米4谱段地表反射率产品,GF1-B/C/D、GF6、资源3-02等卫星的影像数据及融合产品。
2、国外光学卫星数据Landsat 8 SR(2013-2021,全国)、Landsat 7 TOA(1999-2021,全国)、Sentinel 2 MSI L1C/L2A(2019-2021,亚洲)
3、SAR数据Sentinel 1 SAR GRD数据(2020,全国)
4、气象数据全球高分辨率(3小时,10公里)地表太阳辐射数据集(1983-2017)、长序列高时空分辨率月尺度温度和降水数据集(1951-2011)、中国1km分辨率逐月降水量数据集(1901-2017)、中国1km分辨率月最低/高/平均温度数据集(1901-2017)
5、土壤数据中国土壤有机质数据集、中国土地利用遥感监测数据、中国土壤特征数据集(2010)、基于世界土壤数据库(HWSD)土壤数据集(v1.2)
7、粮食数据全球历史大豆/水稻/小麦/玉米产量数据集
8、地表覆盖数据全球30米精细地表覆盖2015/2017年数据集
9、WordClim数据全球生物气候数据(30s/2.5m/5m/10m)、全球2.5分分辨率最低/高气温数据集、全球2.5分分辨率累积降水量数据集
10、矢量数据CMA热带气旋最佳路径数据集、地图标注卫星星下点数据(GNSS/NADIR)数据集
11、MODIS专题数据全球地表反射率8天合成产品(MOD09A1/ MOD09Q1)、全球地表反射率每日产品(MOD09GA/MYD09GA)、全球陆地地面温度/发射率每日产品(MOD11A1)、全球陆地地表温度/发射率8天合成产品(MOD11A2)、全球温度异常/火情8天合成产品(MOD14A2)、全球蒸散发8天合成产品(MOD16A2)
功能更强大——从遥感延伸到地球科学多领域
1、增强了矢量绘制功能,支持将绘制的数据转为Geometry、Feature或FeatureCollection三种类型。
2、增加了FY-4A、GF-3、Himawari-8数据专用算法;增加了FY-4A数据的气溶胶光学厚度、PM2.5、PM10算法,船舶检测算法,Himawari-8数据的RGB合成、海表温度、云掩膜算法等。
3、新增卫星轨道预报算法(解析算法和数值算法)。
4、增强了集合对象的过滤、统计等算法,解决用户提出的诸多问题。
5、Reducer类中增加了linearRegression函数算子。
6、增加了Date等和日期计算相关的类型。
7、后台架构的优化,优化了矢量数据加载策略,加速计算和显示矢量数据。
8、增加了多图层链接功能,现在生成WMTS服务支持同时生成多个图层。
9、增加多标签页支持,现在可以同时编辑多个代码文件并在其中复制代码。
来源航天宏图信息技术股份有限公司
原文始发于微信公众号(地图标注)
如何把自己的门店或公司标注到地图里面。其实很简单:
1、先准备好门店或公司的门脸照片、名称及地址信息
2、然后使用微信扫描下面的二维码,按照要求提交资料
3、提交资料后,客服会联系您进行数据审核,最快2小时内上线