Swift OpenWeather 农业 API 库

OpenWeather 农业 API 为农民提供卫星图像。“通过我们简单快捷的 API,您可以轻松获取最近一天或过去某天的作物多光谱图像;我们拥有对农业最有用的图像,例如 NDVI、EVI、真彩色和假彩色。”

使用 农业 API 卫星图像的概念是首先创建一个或多个多边形,例如代表农作物田地或林业区域。 多边形设置完成后,可以从 Argo API 服务器 为这些多边形检索卫星图像,例如:真彩色、假彩色、NDVI、EVI 等。 这些图像用于估计这些多边形中植被量和健康状况以及作物随时间推移的发育情况。

AgroApi 是一个小型 Swift 库,用于连接 OpenWeather 农业 API 并检索所选数据。 易于使用,并与 SwiftUI 结合。

包括多边形、天气、卫星图像和历史 NDVI API。

多边形 API

农业多边形 API 提供多边形的创建、添加数据、移除多边形以及列出关于一个或多个多边形的信息。 您还可以从您的帐户页面检索所有多边形的列表。

参考:多边形

卫星图像 API

创建多边形后,卫星图像可用于检索这些多边形的图像,例如:真彩色、假彩色、NDVI 和 EVI 的 png 格式图像,以及获取您的多边形或 tiff 格式图像的元数据。

参考:卫星图像

农业天气 API

农业天气 API 提供有关您的多边形当前、预报和历史天气的信息。

参考:当前天气

参考:预报天气

参考:历史天气

农业历史 NDVI API

农业历史 NDVI API 提供先前观察到的(历史) NDVI 值,用于您的多边形。

参考:历史 NDVI API

参考:按多边形的历史 NDVI API

用法

与农业 API 服务器的所有交互都通过使用单个 AgroProvider 完成。

来自 农业 API 的数据(例如卫星图像)通过 AgroProvider 使用一组简单的异步函数进行访问,例如

import AgroApi

struct ContentView: View {
    let agroProvider = AgroProvider(apiKey: "your key")
    @State var uiImage = UIImage()
    
    var body: some View {
        Image(uiImage: uiImage).onAppear { self.loadData() }
    }
    
    func loadData() {
       let options = AgroOptions(polygon_id: "5f45273c734b52667be0bb1e",
                          start: Date().addingTimeInterval(-60*60*24*20),
                          end: Date())

       agroProvider.getImagery(options: options) { imagery in
          if let sat = imagery?.first, let img = sat.image, let theUrl = img.ndvi {
             self.agroProvider.getPngUIImage(urlString: theUrl, paletteid: 1, reponse: self.$uiImage)
          }
      }
   }
}

有关使用示例,请参阅

AgroProvider 具有以下异步函数,以及它们等效的回调方法

注意,AgroProvider 应该被强引用。

多边形

卫星

天气

历史 NDVI

安装

./Sources/AgroApi 文件夹中的文件包含到您的项目中,或者最好使用 Swift Package Manager

Swift 包管理器 (SPM)

为您的项目创建一个 Package.swift 文件,并添加一个依赖项到

dependencies: [
  .package(url: "https://github.com/workingDog/AgroApi.git", from: "0.1.4")
]

使用 Xcode

Select your project > Swift Packages > Add Package Dependency...
https://github.com/workingDog/AgroApi.git

然后在您的代码中

import AgroApi

参考资料

要求

需要有效的 OpenWeather 密钥,请参阅

许可证

MIT