pythonapi提取最接近日期的SAR d

2024-03-28 21:41:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个googleearth引擎javascript代码来检测最近日期SAR图像中的水像素。代码的链接:https://code.earthengine.google.com/0a35eea49123a5390b822bac7afc1b0c。我可以在GEE中运行代码并返回我所需要的内容(如果位置在水面上,则返回1;如果位置在陆地上,则返回0)。你知道吗

我已经尝试开发了以下返回字典的代码,而不是单一的预期输出。你知道吗

import ee, datetime
ee.Initialize()
waterThresh = -16;
angle_threshold_1 = ee.Number(45.4);
angle_threshold_2 = ee.Number(31.66);

class AltimeterExtraction(object):
    def __init__(self, locationfile = './Bin/Location_Data.txt'):
        filecontent = open(locationfile, 'r')
        content = csv.DictReader(filecontent, delimiter='\t')

   def watertestpoint(self, lat=10.55587,lon=89.89789, date1='2019-04-05'):
        lat = ee.Number(lat)
        lon = ee.Number(lon)
        datep = datetime.datetime.strptime(date1, "%Y-%m-%d")
        date2 = datep + datetime.timedelta(days = -10)

        point = ee.Geometry.Point([lon,lat])

        S1 = ee.ImageCollection('COPERNICUS/S1_GRD').filterBounds(point).filterDate(date2, date1)
        S1 = S1.map(self.maskByAngle)
        S1 = S1.select('VV').median().rename('VV')
        S1 = S1.focal_median(50,'circle','meters').rename('VV')
        WaterMask = S1.lt(waterThresh)
        flag = WaterMask.reduceRegion(**{
            'reducer': ee.Reducer.mean(),
            'geometry': point,
            'scale': 10
        });

        return flag.get('VV')

    def maskByAngle(self, img):
        I = ee.Image(img)
        angle = I.select('angle')
        mask1 = angle.lt(angle_threshold_1)
        mask2 = angle.gt(angle_threshold_2)
        I = I.updateMask(mask1)
        return I.updateMask(mask2)


P = AltimeterExtraction()
x= P.watertestpoint()
print x

有没有什么方法可以从python中获取单个值而不是字典?我需要函数的二进制输出(0或1)。你知道吗


Tags: 代码selfnumberdatetimethreshold字典defee
1条回答
网友
1楼 · 发布于 2024-03-28 21:41:02

您应该在打印时添加.getInfo(),以获得该点的实际值。Earth引擎处理服务器端的所有数据,因此必须显式调用.getInfo()来返回信息。你知道吗

我举了一个例子:

P = AltimeterExtraction() 
x= P.watertestpoint(lat=20.5564,lon=94.818,date1='2019-03-30') 
print(x.getInfo())

相关问题 更多 >