我有一个Google Earth引擎javascript代码,可以检测最近的SAR图像中的水像素。代码链接:https://code.earthengine.google.com/0a35eea49123a5390b822bac7afc1b0c。我可以在GEE中运行代码并返回所需的内容(如果位置在水上,则返回1,在陆地上,则返回0)。
我尝试开发以下代码,该代码返回字典,而不是单个预期输出。
@RequestMapping(value = "/uploadFile", method = RequestMethod.PUT, consumes = { "multipart/form-data" })
public Map<String, String> uploadFile(@RequestParam("uploadfile") MultipartFile pdfFile) throws Exception {
//Download PDF
try {
File convFile = new File(pdfFile.getOriginalFilename());
convFile.createNewFile();
String zipFile = "D://"+pdfFile.getOriginalFilename()+".zip"; //path
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
zos.putNextEntry(new ZipEntry(pdfFile.getOriginalFilename()));
zos.write(pdfFile.getBytes());
zos.closeEntry();
zos.close();
}
catch (IOException ioe) {
System.out.println("Error creating zip file: " + ioe);
}
return null;
}
是否有任何方法可以从Python获取单个值而不是字典?我需要函数的二进制输出(0或1)。
答案 0 :(得分:0)
您应该在打印时添加.getInfo()
,以从该点获得实际值。 Earth Engine在服务器端处理所有数据,因此您必须显式调用.getInfo()
才能返回信息。
这是我使用的示例:
P = AltimeterExtraction()
x= P.watertestpoint(lat=20.5564,lon=94.818,date1='2019-03-30')
print(x.getInfo())