Cobertura expandida (experimental)

Desenvolvedores do Espaço Econômico Europeu (EEE)

A API Solar está lançando um recurso experimental que amplia a cobertura para regiões que não eram compatíveis antes, com base em modelos de aprendizado de máquina aplicados a imagens de satélite. Para acessar dados solares experimentais, defina o parâmetro experiments como EXPANDED_COVERAGE e o parâmetro requiredQuality como BASE.

Os dados experimentais estão disponíveis para solicitações de buildingInsights e dataLayers. As seções a seguir descrevem exemplos de solicitações e respostas.

Insights da criação

O endpoint buildingInsights fornece insights sobre a localização, as dimensões e o potencial solar de um edifício. Para solicitar insights de construção, envie uma solicitação HTTP GET para:

https://solar.googleapis.com/v1/buildingInsights:findClosest?key=YOUR_API_KEY

Inclua os parâmetros do URL da solicitação que especificam as coordenadas de latitude e longitude do local e o nível de qualidade mínimo exigido permitido nos resultados.

O exemplo a seguir solicita informações de insights de edifícios para o local nas coordenadas de latitude = 4,655719 e longitude = -74,128971. Para solicitar dados experimentais, defina os seguintes parâmetros:

  • requiredQuality = BASE
  • experiments = EXPANDED_COVERAGE
curl -X GET "https://solar.googleapis.com/v1/buildingInsights:findClosest?location.latitude=4.655719&location.longitude=-74.128971&requiredQuality=BASE&experiments=EXPANDED_COVERAGE&key=YOUR_API_KEY"

Essa solicitação produz uma resposta JSON no formato:

{
  "name": "buildings/ChIJW2GaKXecP44RaeGtGpQtk4Q",
  "center": {
    "latitude": 4.6557664,
    "longitude": -74.1289303
  },
  "imageryDate": {
    "year": 2024,
    "month": 2,
    "day": 19
  },
  "regionCode": "CO",
  "solarPotential": {
    "maxArrayPanelsCount": 351,
    "maxArrayAreaMeters2": 689.20776,
    "maxSunshineHoursPerYear": 1631.7008,
    "carbonOffsetFactorKgPerMwh": 122.99986,
    "wholeRoofStats": {
      "areaMeters2": 1078.406,
      "sunshineQuantiles": [
        562.9261,
        930.9767,
        1165.876,
        1221.8761,
        1333.0057,
        1485.7363,
        1563.2417,
        1593.266,
        1610.5652,
        1621.5986,
        1640.6102
      ],
      "groundAreaMeters2": 1050.76
    },
    "roofSegmentStats": [
      {
        "pitchDegrees": 38.58091,
        "azimuthDegrees": 41.91368,
        "stats": {
          "areaMeters2": 23.153826,
          "sunshineQuantiles": [
            582.9132,
            612.5797,
            673.3435,
            762.14233,
            899.41864,
            1031.1329,
            1103.8121,
            1135.5204,
            1150.2969,
            1158.215,
            1170.5475
          ],
          "groundAreaMeters2": 18.1
        },
        "center": {
          "latitude": 4.6554996,
          "longitude": -74.128966699999992
        },
        "boundingBox": {
          "sw": {
            "latitude": 4.655472,
            "longitude": -74.1290005
          },
          "ne": {
            "latitude": 4.6555371999999995,
            "longitude": -74.1289328
          }
        },
        "planeHeightAtCenterMeters": 2552.031
      },
      /.../
    ]
    "solarPanelConfigs": [
      {
        "panelsCount": 4,
        "yearlyEnergyDcKwh": 2609.5698,
        "roofSegmentSummaries": [
          {
            "pitchDegrees": 10.260736,
            "azimuthDegrees": 131.22626,
            "panelsCount": 1,
            "yearlyEnergyDcKwh": 652.84863,
            "segmentIndex": 6
          },
          {
            "pitchDegrees": 8.649131,
            "azimuthDegrees": 145.79407,
            "panelsCount": 1,
            "yearlyEnergyDcKwh": 652.3829,
            "segmentIndex": 11
          },
          {
            "pitchDegrees": 5.061984,
            "azimuthDegrees": 12.690001,
            "panelsCount": 2,
            "yearlyEnergyDcKwh": 1304.3383,
            "segmentIndex": 12
          }
        ]
      },
      /.../
    ]
    "panelCapacityWatts": 400,
    "panelHeightMeters": 1.879,
    "panelWidthMeters": 1.045,
    "panelLifetimeYears": 20,
    "buildingStats": {
      "areaMeters2": 1143.155,
      "sunshineQuantiles": [
        557,
        883.26263,
        1146.4794,
        1209.3063,
        1278.1102,
        1465.2921,
        1557.7494,
        1590.9565,
        1609.4994,
        1621.1909,
        1640.6102
      ],
      "groundAreaMeters2": 1089.35
    },
    "solarPanels": [
      {
        "center": {
          "latitude": 4.6560077,
          "longitude": -74.12885
        },
        "orientation": "PORTRAIT",
        "yearlyEnergyDcKwh": 653.14404,
        "segmentIndex": 12
      },
      /.../
    ]
    },
  "boundingBox": {
    "sw": {
      "latitude": 4.6554716,
      "longitude": -74.129243899999992
    },
    "ne": {
      "latitude": 4.6560513,
      "longitude": -74.128623900000008
    }
  },
  "imageryQuality": "BASE",
  "imageryProcessedDate": {
    "year": 2024,
    "month": 7,
    "day": 21
  }
}

Camadas de dados

O endpoint dataLayers fornece informações solares detalhadas para uma região ao redor de um local especificado. O endpoint retorna 17 arquivos TIFF para download, incluindo um modelo digital de superfície (DSM), uma camada composta RGB (imagens aéreas) e uma camada de máscara que identifica os limites da análise, entre outros.

O exemplo a seguir mostra o URL de uma solicitação REST para o método dataLayers:

https://solar.googleapis.com/v1/dataLayers:get?parameters

Inclua os parâmetros do URL da solicitação que especificam o seguinte:

  • Coordenadas de latitude e longitude do local
  • O raio (em metros) da região ao redor do local
  • A qualidade mínima permitida nos resultados

Para solicitar dados experimentais, defina os seguintes parâmetros:

  • requiredQuality = BASE
  • experiments = EXPANDED_COVERAGE
curl -X GET "https://solar.googleapis.com/v1/dataLayers:get?location.latitude=4.655719&location.longitude=-74.128971&radiusMeters=100&requiredQuality=BASE&experiments=EXPANDED_COVERAGE&key=YOUR_API_KEY"

Essa solicitação gera uma resposta JSON no formato:

{
  "imageryDate": {
    "year": 2024,
    "month": 2,
    "day": 19
  },
  "imageryProcessedDate": {
    "year": 2024,
    "month": 7,
    "day": 21
  },
  "dsmUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=YTYwZDUzYTMxNjVmMjFlYWNjZmMyYzcxYTNhNWQ2OWItZTM0ZWRjZTQwNTZjZWUyYTNiNWE2ZjU5OTVkYWJjNTM6RFNNOkJBU0U",
  "rgbUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=MWU2NmYxNmU3M2JlYmY5NDJkZmVmMjQ0NDViMjFjYTgtZWVhYjRiN2U0YWJlNzM2Nzk1MzUxZTQ4YTgxNjZiM2M6UkdCOkJBU0U",
  "maskUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=ZGU4NzhmNDg0YjE2OGYwYTdjN2EyYmVlMDQxYTM5NDMtNDk2NGQwNzBhMzAwYzBkYTEwZDNmYjgzNTk4ODkyY2I6TUFTSzpCQVNF",
  "annualFluxUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=NmRiZDQ0NDFkNWE5NDU2Nzc2ZTU1Mzg0MDY0YzFhMWMtMDg2ZDMyZjVkYTMzMDhiZmI5NzM1MzY0YmRjZmFiM2I6QU5OVUFMX0ZMVVg6QkFTRQ",
  "monthlyFluxUrl": "https://solar.googleapis.com/v1/geoTiff:get?id=NTAyMDJkMTVmMjJiZGYyOTNiMDFhMWEzNDJkZjAwNTctZDRjMjY3ZjU1YjQ2ZjE4ZTNkNjE1YmU5NTlmOThlZjM6TU9OVEhMWV9GTFVYOkJBU0U",
  "hourlyShadeUrls": [
    "https://solar.googleapis.com/v1/geoTiff:get?id=NWNkZmM0NTcwYTE5ODQzMmI0MmQ1NDM4NzY4MTc5MzEtOWE0MTBjNDkwM2IxZjA0MmI1ZTNmNTg1NTY0MTNkZjI6SE9VUkxZX1NIQURFOkJBU0U",
    "https://solar.googleapis.com/v1/geoTiff:get?id=Y2YwNDY4MzQ1YzhkMjBlZjU5M2NiNDRmMmM0ODRiNTUtNjMwOWM2NDBjZmI5OTdkMDA3ZGQzOWY2YmI1ZTk2NWM6SE9VUkxZX1NIQURFOkJBU0U",
    /.../
  ],
  "imageryQuality": "BASE"
}

Para fazer uma solicitação ao URL na resposta, adicione sua chave de API ao URL:

curl -X GET "https://solar.googleapis.com/v1/geoTiff:get?id=YTYwZDUzYTMxNjVmMjFlYWNjZmMyYzcxYTNhNWQ2OWItZTM0ZWRjZTQwNTZjZWUyYTNiNWE2ZjU5OTVkYWJjNTM6RFNNOkJBU0U&key=YOUR_API_KEY"

Com exceção da camada RGB, todos os arquivos TIFF vão aparecer como imagens em branco em aplicativos de visualização de imagens. Para ver os arquivos TIFF baixados, importe-os para um software de aplicação de mapeamento, como o QGIS.

A especificação completa dessa solicitação e resposta está na documentação de referência.