PythonPIE0.1.2 复现官方NDVI示例报错 AttributeError: ‘NoneType‘ object has no attribute ‘get‘

问题描述:

SDK版本:PythonPIE-0.1.2
Python版本:3.9.2

在使用官方示例,计算中国NDVI时出现错误

import pie
import pie.pieleaflet as pieleaflet
# 使用用户在平台上注册时的用户名/密码
pie.initialize("*", "*")
# 加载地图显示
Map = pieleaflet.PIEMap()
# 加载中国区域范围
fCol = chn = pie.FeatureCollection('NGCC/CHINA_CITY_BOUNDARY')

Map.addLayer(fCol, {'color': "#ff0000", 'fillColor': "#00000000"}, "china")
roi = fCol.getAt(0).geometry()

Map.addLayer(roi, {'color': "red", 'fillColor': "#00000000"}, "roi")

# 影像集合
l8Col = pie.ImageCollection("LC08/01/T1")

# 通过日期过滤影像集合,并且计算NDVI指数
def ndviF(image):
    b4 = image.select("B4")
    b5 = image.select("B5")
    ndvi = (b5.subtract(b4).divide(b5.add(b4)))
    return ndvi
l8Col = l8Col.filterDate("2019-12-01", "2019-12-31").select(["B4", "B5"]).map(ndviF)
# NDVI绘制样式
visParamNDVI = {
    'min': -0.2,
    'max': 0.8,
    'palette': 'CA7A41, CE7E45, DF923D, F1B555, FCD163, 99B718, ' +
             '74A901, 66A000, 529400,3E8601, 207401, 056201, 004C00,' +
             '023B01, 012E01, 011D01, 011301'
}
# 加载影像集合的最大值.mean().clip(roi)
Map.addLayer(l8Col.mean().clip(roi), visParamNDVI, "NDVI")
Map.setCenter(34.1, 113.44, 6)
Map

报错信息如下:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-31-9f4fe9d5975c> in <module>
      4 fCol = chn = pie.FeatureCollection('NGCC/CHINA_CITY_BOUNDARY')
      5 
----> 6 Map.addLayer(fCol, {'color': "#ff0000", 'fillColor': "#00000000"}, "china")
      7 roi = fCol.getAt(0).geometry()
      8 

~/.virtualenvs/pie/lib/python3.9/site-packages/pie/pieleaflet.py in addLayer(self, pieObject, style, name)
    258 
    259         elif isinstance(pieObject, PIEFeatureCollection):
--> 260             coordinates = pieObject.getAt(0).geometry().getInfo().get("geometry").get("coordinates")
    261             if not style.get("color"):
    262                 _color = "red"

AttributeError: 'NoneType' object has no attribute 'get'

解决方案:

SDK版本为0.1.2,在Linux和Windows平台均出现上述问题

重装0.1.4的SDK后解决
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值