跳转至

森林火险

基于多源卫星辅助地面分类建立的森林火点监测查询接口。

火点半径查询

概览

项目 内容
方法 GET
路径 https://standard.data-api.skyviewor.host/v1/fire-point/nearby
定价 每次成功调用 10 资源点

请求参数

参数 类型 必填 默认值 说明
lat float 纬度 WGS84,范围 -90 ~ 90
lon float 经度 WGS84,范围 -180 ~ 180
radius_km float 10.0 搜索半径(公里),范围 0 < radius ≤ 500

查询最近 24 小时内的火点数据。

响应示例

{
  "code": 0,
  "message": "ok",
  "data": {
    "count": 3,
    "time_window": {
      "start": "2025-01-15T00:00:00+08:00",
      "end": "2025-01-16T00:00:00+08:00"
    },
    "items": [
      {
        "hotspot_id": "FP202501150800_001",
        "latitude": 30.12,
        "longitude": 119.05,
        "acq_datetime": "2025-01-15T08:00:00+08:00"
      }
    ]
  },
  "request_id": "req_a1b2c3d4e5f6"
}

响应字段

字段 类型 说明
data.count int 命中火点数量
data.time_window.start string 数据时间窗口起始,ISO 8601 格式
data.time_window.end string 数据时间窗口结束,ISO 8601 格式
data.items[].hotspot_id string 火点唯一标识
data.items[].latitude float 火点纬度 WGS84
data.items[].longitude float 火点经度 WGS84
data.items[].acq_datetime string 火点观测时间,ISO 8601 格式

代码示例

# 更换为您的以 sk- 开头的 API Key 字符串
curl -s \
  -H "Authorization: Bearer sk-d5d0542bef7e42e2b8909cb7f42af5fb" \
  "https://standard.data-api.skyviewor.host/v1/fire-point/nearby?lat=39.9312&lon=116.3852&radius_km=50"
import json, urllib.request
from urllib.parse import urlencode

API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"  # 更换为您的以 sk- 开头的 API Key 字符串
params = urlencode({"lat": 39.9312, "lon": 116.3852, "radius_km": 50})
url = f"https://standard.data-api.skyviewor.host/v1/fire-point/nearby?{params}"

req = urllib.request.Request(
    url, headers={"Authorization": f"Bearer {API_KEY}"}
)
with urllib.request.urlopen(req, timeout=30) as resp:
    result = json.loads(resp.read().decode())

data = result["data"]
print(f"命中 {data['count']} 条火点,消耗 10 资源点")
for item in data.get("items", []):
    print(f"  {item['hotspot_id']} ({item['latitude']}, {item['longitude']}) {item['acq_datetime']}")
const API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({ lat: 39.9312, lon: 116.3852, radius_km: 50 });
const url = `https://standard.data-api.skyviewor.host/v1/fire-point/nearby?${params}`;

const resp = await fetch(url, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const result = await resp.json();
console.log(`命中 ${result.data.count} 条火点,消耗 10 资源点`);
result.data.items.forEach(item => {
  console.log(`  ${item.hotspot_id} (${item.latitude}, ${item.longitude}) ${item.acq_datetime}`);
});
const API_KEY: string = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
  lat: "39.9312", lon: "116.3852", radius: "50",
});
const url = `https://standard.data-api.skyviewor.host/v1/wildfire/point/nearby?${params}`;

const resp = await fetch(url, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const result: any = await resp.json();
console.log(`火点数: ${result.data.points.length}`);
for (const p of result.data.points) {
  console.log(`(${p.latitude}, ${p.longitude}) 置信度: ${p.confidence}`);
}
import (
    "encoding/json" "fmt" "io" "net/http" "net/url"
)
const apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb" // 更换为您的以 sk- 开头的 API Key 字符串
params := url.Values{}
params.Set("lat", "39.9312")
params.Set("lon", "116.3852")
params.Set("radius_km", "50")
apiUrl := "https://standard.data-api.skyviewor.host/v1/fire-point/nearby?" + params.Encode()
req, _ := http.NewRequest("GET", apiUrl, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
data := result["data"].(map[string]interface{})
fmt.Printf("命中 %.0f 条火点,消耗 10 资源点\n", data["count"])
String API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
String query = String.format("lat=%s&lon=%s&radius_km=%s",
    URLEncoder.encode("39.9312", StandardCharsets.UTF_8),
    URLEncoder.encode("116.3852", StandardCharsets.UTF_8),
    URLEncoder.encode("50", StandardCharsets.UTF_8));
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://standard.data-api.skyviewor.host/v1/fire-point/nearby?" + query))
    .header("Authorization", "Bearer " + API_KEY)
    .GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
using System.Net.Http;
using System.Text.Json;

var apiBase = "https://standard.data-api.skyviewor.host";
var apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var json = await client.GetStringAsync($"{apiBase}/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50");
using var doc = JsonDocument.Parse(json);
var points = doc.RootElement.GetProperty("data").GetProperty("points");
Console.WriteLine($"火点数: {points.GetArrayLength()}");
foreach (var p in points.EnumerateArray())
{
    Console.WriteLine($"({p.GetProperty("latitude").GetDouble()}, {p.GetProperty("longitude").GetDouble()}) 置信度: {p.GetProperty("confidence").GetString()}");
}
$API_BASE = "https://standard.data-api.skyviewor.host";
$API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串

$ch = curl_init("{$API_BASE}/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer {$API_KEY}"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "火点数: " . count($result['data']['points']) . "\n";
foreach ($result['data']['points'] as $p) {
    echo "({$p['latitude']}, {$p['longitude']}) 置信度: {$p['confidence']}\n";
}
library(httr)
library(jsonlite)

API_KEY <- "sk-d5d0542bef7e42e2b8909cb7f42af5fb"  # 更换为您的以 sk- 开头的 API Key 字符串

resp <- GET(
  "https://standard.data-api.skyviewor.host/v1/fire-point/nearby",
  query = list(lat = 39.9312, lon = 116.3852, radius_km = 50),
  add_headers(Authorization = paste("Bearer", API_KEY))
)
result <- fromJSON(content(resp, "text", encoding = "UTF-8"))
cat(sprintf("命中 %d 条火点,消耗 10 资源点\n", result$data$count))
for (i in seq_len(nrow(result$data$items))) {
  item <- result$data$items[i, ]
  cat(sprintf("  %s (%.2f, %.2f) %s\n",
      item$hotspot_id, item$latitude, item$longitude, item$acq_datetime))
}
api_base = 'https://standard.data-api.skyviewor.host';
api_key = 'sk-d5d0542bef7e42e2b8909cb7f42af5fb';  % 更换为您的以 sk- 开头的 API Key 字符串

options = weboptions('HeaderFields', {'Authorization', ['Bearer ' api_key]}, 'Timeout', 30);
result = webread([api_base '/v1/wildfire/point/nearby?lat=39.9312&lon=116.3852&radius=50'], options);
fprintf('火点数: %d\n', length(result.data.points));
for i = 1:length(result.data.points)
    p = result.data.points(i);
    fprintf('(%.4f, %.4f) 置信度: %s\n', p.latitude, p.longitude, p.confidence);
end

火点矩形查询

概览

项目 内容
方法 GET
路径 https://standard.data-api.skyviewor.host/v1/fire-point/bbox
定价 每次成功调用 10 资源点

请求参数

参数 类型 必填 默认值 说明
min_lon float 最小经度,范围 -180 ~ 180
min_lat float 最小纬度,范围 -90 ~ 90
max_lon float 最大经度,范围 -180 ~ 180
max_lat float 最大纬度,范围 -90 ~ 90

查询最近 24 小时内矩形范围内的火点数据。矩形范围不宜过大,建议单边不超过 5 度。

响应示例

{
  "code": 0,
  "message": "ok",
  "data": {
    "count": 7,
    "time_window": {
      "start": "2025-01-15T00:00:00+08:00",
      "end": "2025-01-16T00:00:00+08:00"
    },
    "items": [
      {
        "hotspot_id": "FP202501150800_002",
        "latitude": 23.5,
        "longitude": 113.3,
        "acq_datetime": "2025-01-15T08:00:00+08:00"
      }
    ]
  },
  "request_id": "req_a1b2c3d4e5f6"
}

响应字段

字段 类型 说明
data.count int 命中火点数量
data.time_window.start string 数据时间窗口起始,ISO 8601 格式
data.time_window.end string 数据时间窗口结束,ISO 8601 格式
data.items[].hotspot_id string 火点唯一标识
data.items[].latitude float 火点纬度 WGS84
data.items[].longitude float 火点经度 WGS84
data.items[].acq_datetime string 火点观测时间,ISO 8601 格式

代码示例

# 更换为您的以 sk- 开头的 API Key 字符串
curl -s \
  -H "Authorization: Bearer sk-d5d0542bef7e42e2b8909cb7f42af5fb" \
  "https://standard.data-api.skyviewor.host/v1/fire-point/bbox?min_lon=113&min_lat=23&max_lon=114&max_lat=24"
import json, urllib.request
from urllib.parse import urlencode

API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"  # 更换为您的以 sk- 开头的 API Key 字符串
params = urlencode({
    "min_lon": 113, "min_lat": 23,
    "max_lon": 114, "max_lat": 24,
})
url = f"https://standard.data-api.skyviewor.host/v1/fire-point/bbox?{params}"

req = urllib.request.Request(
    url, headers={"Authorization": f"Bearer {API_KEY}"}
)
with urllib.request.urlopen(req, timeout=30) as resp:
    result = json.loads(resp.read().decode())
print(f"命中 {result['data']['count']} 条火点")
const API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
  min_lon: 113, min_lat: 23, max_lon: 114, max_lat: 24,
});
const url = `https://standard.data-api.skyviewor.host/v1/fire-point/bbox?${params}`;

const resp = await fetch(url, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const result = await resp.json();
console.log(`命中 ${result.data.count} 条火点`);
const API_KEY: string = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
const params = new URLSearchParams({
  min_lat: "30.0", max_lat: "50.0", min_lon: "110.0", max_lon: "120.0",
});
const url = `https://standard.data-api.skyviewor.host/v1/wildfire/point/rectangle?${params}`;

const resp = await fetch(url, {
  headers: { Authorization: `Bearer ${API_KEY}` },
});
const result: any = await resp.json();
console.log(`火点数: ${result.data.points.length}`);
apiKey := "sk-d5d0542bef7e42e2b8909cb7f42af5fb" // 更换为您的以 sk- 开头的 API Key 字符串
params := url.Values{}
params.Set("min_lon", "113")
params.Set("min_lat", "23")
params.Set("max_lon", "114")
params.Set("max_lat", "24")
apiUrl := "https://standard.data-api.skyviewor.host/v1/fire-point/bbox?" + params.Encode()
req, _ := http.NewRequest("GET", apiUrl, nil)
req.Header.Set("Authorization", "Bearer "+apiKey)
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
fmt.Printf("命中 %.0f 条火点\n", result["data"].(map[string]interface{})["count"])
String API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串
String query = String.format("min_lon=%s&min_lat=%s&max_lon=%s&max_lat=%s",
    URLEncoder.encode("113", StandardCharsets.UTF_8),
    URLEncoder.encode("23", StandardCharsets.UTF_8),
    URLEncoder.encode("114", StandardCharsets.UTF_8),
    URLEncoder.encode("24", StandardCharsets.UTF_8));
HttpRequest req = HttpRequest.newBuilder()
    .uri(URI.create("https://standard.data-api.skyviewor.host/v1/fire-point/bbox?" + query))
    .header("Authorization", "Bearer " + API_KEY)
    .GET().build();
HttpResponse<String> resp = client.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
using System.Net.Http;
using System.Text.Json;

var apiBase = "https://standard.data-api.skyviewor.host";
var apiKey = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串

using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
var json = await client.GetStringAsync($"{apiBase}/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0");
using var doc = JsonDocument.Parse(json);
Console.WriteLine($"火点数: {doc.RootElement.GetProperty("data").GetProperty("points").GetArrayLength()}");
$API_BASE = "https://standard.data-api.skyviewor.host";
$API_KEY = "sk-d5d0542bef7e42e2b8909cb7f42af5fb"; // 更换为您的以 sk- 开头的 API Key 字符串

$ch = curl_init("{$API_BASE}/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer {$API_KEY}"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$result = json_decode($response, true);
echo "火点数: " . count($result['data']['points']) . "\n";
library(httr)
library(jsonlite)

API_KEY <- "sk-d5d0542bef7e42e2b8909cb7f42af5fb"  # 更换为您的以 sk- 开头的 API Key 字符串

resp <- GET(
  "https://standard.data-api.skyviewor.host/v1/fire-point/bbox",
  query = list(min_lon = 113, min_lat = 23, max_lon = 114, max_lat = 24),
  add_headers(Authorization = paste("Bearer", API_KEY))
)
result <- fromJSON(content(resp, "text", encoding = "UTF-8"))
cat(sprintf("命中 %d 条火点\n", result$data$count))
api_base = 'https://standard.data-api.skyviewor.host';
api_key = 'sk-d5d0542bef7e42e2b8909cb7f42af5fb';  % 更换为您的以 sk- 开头的 API Key 字符串

options = weboptions('HeaderFields', {'Authorization', ['Bearer ' api_key]}, 'Timeout', 30);
result = webread([api_base '/v1/wildfire/point/rectangle?min_lat=30.0&max_lat=50.0&min_lon=110.0&max_lon=120.0'], options);
fprintf('火点数: %d\n', length(result.data.points));