API DOCUMENTATION

ETo Forecast API

บริการข้อมูลพยากรณ์ปริมาณการใช้น้ำของพืชอ้างอิง โดยระบุพิกัดละติจูดและลองจิจูด ระบบจะค้นหาจุดกริดข้อมูลที่อยู่ใกล้พิกัดนั้นมากที่สุด

ภาพรวม

API นี้ให้บริการข้อมูล ETo รายวันล่วงหน้า 10 วัน หน่วยเป็นมิลลิเมตรต่อวัน โดยผู้ใช้ต้องระบุ variable=eto พร้อมส่งพิกัด lat และ lon ไปยัง API

เนื่องจากข้อมูลเป็นจุดกริด พิกัดที่ผู้ใช้ส่งมา อาจไม่ตรงกับจุดข้อมูลโดยตรง ระบบจึงคำนวณระยะทาง และเลือกจุดกริดที่ใกล้ที่สุดให้โดยอัตโนมัติ

ข้อมูล ETo พยากรณ์ 10 วัน ไม่ต้องใช้ API Key ผลลัพธ์ JSON
Base URL
ตรวจสอบและแก้ URL ด้านล่างให้ตรงกับตำแหน่งจริงบนเซิร์ฟเวอร์
http://arcims.tmd.go.th/api/agromet.php

การเรียกข้อมูล

ขอข้อมูล ETo 10 วันจากพิกัด

GET http://arcims.tmd.go.th/api/agromet.php?variable=eto&lat=13.7563&lon=100.5018

ขอข้อมูลเฉพาะวันที่

GET http://arcims.tmd.go.th/api/agromet.php?variable=eto&lat=13.7563&lon=100.5018&date=2026-07-16
ค่า lat ต้องอยู่ระหว่าง -90 ถึง 90 และค่า lon ต้องอยู่ระหว่าง -180 ถึง 180

พารามิเตอร์

พารามิเตอร์ จำเป็น คำอธิบาย ตัวอย่าง
variable จำเป็น ชนิดข้อมูลที่ต้องการ ปัจจุบันรองรับเฉพาะ eto eto
lat จำเป็น ละติจูดของตำแหน่งที่ต้องการข้อมูล 13.7563
lon จำเป็น ลองจิจูดของตำแหน่งที่ต้องการข้อมูล 100.5018
date ไม่จำเป็น วันที่ที่ต้องการในรูปแบบ YYYY-MM-DD 2026-07-16

รูปแบบผลลัพธ์

ผลลัพธ์จะแสดงทั้งพิกัดที่ผู้ใช้ร้องขอ จุดกริดที่ระบบเลือก ระยะห่างจากพิกัดจริง และข้อมูล ETo ตามวันที่

{
  "status": "success",
  "dataset": "ETo",
  "requested_location": {
    "lat": 13.7563,
    "lon": 100.5018
  },
  "nearest_grid_point": {
    "id": "p1308",
    "lat": 13.75,
    "lon": 100.5,
    "distance_km": 0.73
  },
  "forecast_period": {
    "start_date": "2026-07-15",
    "end_date": "2026-07-24",
    "days": 10
  },
  "data": [
    {
      "date": "2026-07-15",
      "eto": 3.8,
      "unit": "mm/day"
    }
  ]
}

ตัวอย่าง JavaScript

const variable = "eto";
const latitude = 13.7563;
const longitude = 100.5018;

const apiUrl =
  "http://arcims.tmd.go.th/api/agromet.php"
  + "?variable=" + encodeURIComponent(variable)
  + "&lat=" + encodeURIComponent(latitude)
  + "&lon=" + encodeURIComponent(longitude);

async function loadETo() {
  try {
    const response = await fetch(apiUrl);

    if (!response.ok) {
      throw new Error("HTTP " + response.status);
    }

    const result = await response.json();

    if (result.status !== "success") {
      throw new Error(result.message);
    }

    console.log(
      "จุดกริดที่ใช้:",
      result.nearest_grid_point
    );

    result.data.forEach(function (item) {
      console.log(
        item.date,
        item.eto,
        item.unit
      );
    });

  } catch (error) {
    console.error(
      "ไม่สามารถเรียกข้อมูล ETo ได้:",
      error.message
    );
  }
}

loadETo();

ตัวอย่าง Python

pip install requests
import requests

api_url = (
    "http://arcims.tmd.go.th/"
    "api/agromet.php"
)

params = {
    "variable": "eto",
    "lat": 13.7563,
    "lon": 100.5018,
}

response = requests.get(
    api_url,
    params=params,
    timeout=30,
)

response.raise_for_status()
result = response.json()

print(
    "Nearest grid:",
    result["nearest_grid_point"],
)

for item in result["data"]:
    print(
        item["date"],
        item["eto"],
        item["unit"],
    )

การตอบกลับเมื่อเกิดข้อผิดพลาด

{
  "status": "error",
  "message": "The variable parameter is required. Currently supported: eto.",
  "example": "agromet.php?variable=eto&lat=13.7563&lon=100.5018"
}
HTTP Status ความหมาย
200 เรียกข้อมูลสำเร็จ
400 พิกัดหรือรูปแบบพารามิเตอร์ไม่ถูกต้อง
404 ไม่พบไฟล์หรือวันที่ที่ร้องขอ
500 ข้อมูลหรือระบบภายในเซิร์ฟเวอร์มีปัญหา