מעבר ל-Solar API בפלטפורמה של מפות Google

כדי לעבור מ-Google Earth Engine Solar API ל-Solar API של פלטפורמת מפות Google:

  1. מפעילים את Solar API בפלטפורמה של מפות Google בפרויקט בענן.
  2. יוצרים מפתח חדש ומגבילים אותו ל-GMP Solar API.
  3. מעדכנים את הקוד לפי ההוראות המפורטות שבהמשך.

השוואה בין שתי מודעות

Solar API (חדש) בתים עם שמש Earth Engine Solar API (הווצא משימוש) סמל EE
סטטוס השקה הופעל תוכנית פיילוט (הוצאה משימוש)
גישה
מנגנון חשבון Google Cloud דרך מסוף Cloud, על ידי הפעלת Solar API וניהול ה-API בקטע של הפלטפורמה של מפות Google חשבון Google Cloud דרך מסוף Cloud, על ידי הפעלת Earth Engine Solar API
מי גלוי לכולם גישה מבוקרת
רמה הקצאה עצמית גישה ידנית לפרויקט ב-Cloud
אימות מפתח API ו-OAuth מפתח API
תמחור
אסטרטגיה Pay-as-you-go הנחה של 100%
חלוקה לרמות לכל 1,000 שאילתות, עם תמחור יורד על סמך נפח
נקודות קצה מחירים שונים לכל נקודת קצה
Cloud
מעקב Cloud Monitoring בקטע 'פלטפורמת מפות Google' Cloud Monitoring בקטע 'API ושירותים'
מכסה שאילתות לדקה (QPM) ושאילתות לשעה (QPH) שנתי
רישום ביומן Cloud Logging (אופציונלי) Cloud Logging (אופציונלי)
חיוב חשבון לחיוב ב-Cloud -
תמיכה תמיכה מלאה בפלטפורמה של מפות Google עם SLO/SLA מוגבלת, באימייל
API
שם מארח https://solar.googleapis.com/v1/ (REST) https://earthenginesolar.googleapis.com/v1/ (REST)
Methods
  • buildingInsights:findClosest
  • dataLayers:get
  • buildings:findClosest
  • solar.get
תשובה אין שינויים בהשוואה לתוכנית הפיילוט
solarInfo רדיוס של 100 מ' לכל היותר רדיוס של 100 מ' לכל היותר
כיסוי
אזור גלובלי גלובלי
איכות הנתונים HIGH/MEDIUM HIGH/MEDIUM
סוג המבנה כל בניין שממופה לכתובת וגם נמצא בטווח הכיסוי של התמונות של Solar API כל בניין שממופה לכתובת וגם נמצא בטווח הכיסוי של התמונות של Solar API
תנאים והגבלות
תנאים והגבלות התנאים של הפלטפורמה של מפות Google התנאים של Google Earth Engine

הדרכה מפורטת

הגדרת הפרויקט ב-Google Cloud

הוראות מפורטות זמינות במאמר הגדרת פרויקט ב-Google Cloud.

רק משתמשים עם תפקידים מסוימים יכולים ליצור פרויקטים ב-Cloud. אם אתם לא מצליחים ליצור פרויקט, פנו לאדמין של הארגון.

אפשר גם להשתמש בפרויקט קיים ב-Cloud. מידע נוסף זמין במאמר תחילת העבודה עם הפלטפורמה של מפות Google.

הגדרת החשבון לחיוב

הוראות מפורטות זמינות במאמר איך מנהלים את החשבון לחיוב.

אתם יכולים להשתמש בפרויקט קיים ב-Cloud עם חשבון קיים לחיוב.

קבלת מפתח API או שימוש באסימון OAuth

אחרי שמגדירים את הפרויקט ב-Google Cloud, צריך ליצור מפתח API ולאבטח אותו כדי להשתמש ב-Solar API, כפי שמתואר בקטע שימוש במפתחות API. לחלופין, אפשר ליצור אסימון OAuth כפי שמתואר במאמר שימוש ב-OAuth.

שימוש ב-Solar API

  • שולחים בקשות GET לנקודות הקצה החדשות : https://solar.googleapis.com
  • לתשומת ליבכם: חלק משמות השיטות של ה-API השתנו:
    • buildings:findClosestbuildingInsights:findClosest
    • solarinfo:getdataLayers:get

ניסיון מהיר: משתמשים במפתח ה-API השמור מהשלב הקודם ומחליפים את YOUR_API_KEY בשאילתה לדוגמה שבהמשך, לפני טעינת כתובת ה-URL בדפדפן:

https://solar.googleapis.com/v1/dataLayers:get?location.latitude=37.2746464&location.longitude=-121.7530949&radius_meters=10&key=YOUR_API_KEY

תגובה לגרסה המקורית של Preview

במהדורת ה-Preview המקורית שפורסמה ב-9 במאי 2023, כתובות ה-URL בתשובה הן בפורמט:

https://earthengine.googleapis.com/v1alpha/projects/sunroof-api/thumbnails/THUMBNAIL_ID:getPixels

קטע הקוד הבא הוא דוגמה לתגובה:

{
  "imageryDate": {
    "year": 2015,
    "month": 8,
    "day": 8
  },
  "imageryProcessedDate": {
    "year": 2021,
    "month": 2,
    "day": 15
  },
  "dsmUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/fbde33e9cd16d5fd10d19a19dc580bc1-8614f599c5c264553f821cd034d5cf32:getPixels",
  "rgbUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/91ed3551f2d0abee20af35e07bd0c927-c96c59e80cf1fc1dc86cf59fc8ec86ba:getPixels",
  "maskUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/e4051553dba6870c03d855ae82c30b7e-7cc8ae6ce7c73f219e3c1924e5c17fc6:getPixels",
  "annualFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/9b0f87f49d778a65c9e27ff936e6dbba-b90be2fe80d25abd4c9e8c4dc809f763:getPixels",
  "monthlyFluxUrl": "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/90e7cca77402f14809e349937f0a0be8-94fafeb4ef42d72f1b3c0652a1cb5518:getPixels",
  "hourlyShadeUrls": [
    "https://earthengine.googleapis.com/v1alpha/projects/geo-solar-api/thumbnails/dcd276e4782aef4ff1b230b781736d37-e193b231ce57a03449afc3e21cf6783b:getPixels",
    ...
  ]
  }

כדי לשלוח בקשה לכתובת URL בתגובה, צריך לכלול את כתובת ה-URL המלאה בבקשה.

המפרט המלא של הבקשה והתגובה האלה מופיע במסמכי העזרה.

כתיבת אפליקציה שתומכת בשני פורמטים של תשובות

עכשיו אפשר לכתוב אפליקציה שתטפל גם בפורמט המקורי של התצוגה המקדימה וגם בפורמטים הנוכחיים של התשובות.

ההבדל העיקרי בין שתי התגובות, מלבד כתובת ה-URL עצמה, הוא שחובה להעביר מפתח API לבקשה שמקבלת גישה לכתובות ה-URL מפורמט התגובה החדש. אם משמיטים את מפתח ה-API, הבקשה נכשלת.

לדוגמה, אפשר להוסיף את הקוד הבא לאפליקציה כדי לבדוק את כתובת ה-URL ולטפל בכל גרסה בצורה נכונה:

JavaScript

/**
* Function to examine a response URL and to append the API key to the
* URL if it is in the new format.
*/
function prepareGetGeoTiffUrl(geoTiffUrl, apiKey) {
  if (geoTiffUrl.match("solar.googleapis.com")) {
    let url = new URL(geoTiffUrl);
    url.searchParams.set('apiKey', apiKey);
    return url.toString();
  }
  return geoTiffUrl;
}

Python

# Functions to examine a response URL and to append the API key to the
# URL if it is in the new format.

def add_api_key_to_url(base_url: str, api_key: str) -> str:
  '''Formats URL that currently lacks an API key to use the one provided.'''
  return base_url + "&key=" +api_key;

def prepare_geo_tiff_url(base_url: str, api_key: str) -> str:
  '''Prepares URL from GetDataLayers depending on API being called.
    If the geoTIFF url from GetDataLayers is for the solar API GetGeoTiff
      endpoint, append the API key. Otherwise return the URL as is.
  '''
  if re.search("solar.googleapis.com", geo_tiff_url):
    return add_api_key_to_url(geo_tiff_url, api_key)
  return geo_tiff_url

Java


/** Adds API key to a URL. */
private String addApiKeyToUrl(String geoTiffUrl, String apiKey) {
  return geoTiffUrl + "&key=" + apiKey;
}

/**
* Function to examine a response URL and to append the API key to the
* URL if it is in the new format.
*/
private String prepareGetGeoTiffUrl(String geoTiffUrl, String apiKey) {
  Pattern pattern = Pattern.compile("solar.googleapis.com");
  Matcher matcher = pattern.matcher(geoTiffUrl);
  if (matcher.find()) {
    return addApiKeyToUrl(geoTiffUrl, apiKey);
  } else {
    return geoTiffUrl;
  }
}

מעקב

ברמת הפרויקט ברמת החשבון לחיוב

Cloud Monitoring חיוב ב-Cloud

טיפים שחשוב לדעת

  • מכסה: צריכה שניתן להתאים לעומס (במקום מכסה שנתית שתיעלם)
    • המכסה הנוכחית שתשתנה ל-QPM
    • שיטות מומלצות: הגדרת מכסה בצד הלקוח ושליחת התראות
  • תמחור:
    • Pay-as-you-go
    • תגובות 404 NOT_FOUND, כשהמיקום לא נמצא בטווח הכיסוי, לא יחויבו, אבל ייכללו במכסה
  • תנאי שימוש כלליים: התנאים וההגבלות של פלטפורמת מפות Google