Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft Planetární Počítač Pro je služba pro správu geoprostorových dat postavená na hyperscale infrastruktuře Azure. GeoCatalog je Azure zdroj, který poskytuje základní schopnosti pro sběr, správu, vyhledávání a distribuci geospatialních datových sad pomocí otevřené specifikace SpatioTemporal Asset Catalog (STAC).
Klíčové funkce
- STAC správa kolekcí: Vytvářejte, čtěte, aktualizujte a mažte STAC kolekce a položky pro organizaci vašich geoprostorových datových sad
- Konfigurace kolekce: Nastavte možnosti renderování, mozaiky, nastavení dlaždic a dotazovatelné prvky pro optimalizaci výkonu dotazů a vizualizace
- Vizualizace dat: Generujte mapové dlaždice (XYZ, TileJSON, WMTS), náhledové obrázky, ořezujte pomocí GeoJSON nebo ohraničovacího rámečku, extrahujte hodnoty bodů a vypočítávejte statistiky
- Mosaic Operations: Registrujte mozaiky založené na vyhledávání v STAC pro dotazování a vyhledávání dat podle jednotlivých pixelů, generujte dlaždice z více položek a přistupujte k možnostem TileJSON a WMTS
- Legendy map: Získejte legendy tříd (kategorická) a intervalové legendy (kontinuální) jako JSON nebo PNG obrázky s předdefinovanými barevnými mapami
- Vstup dat: Nastavte zdroje ingestů (Managed Identity nebo SAS token), definujte ingestions z katalogů STAC a vytvářejte a monitorujte ingestenční běhy
- STAC API Operations: Plné CRUD operace na položkách, vyhledávání pomocí prostorových/časových filtrů a třídění, vyhledávání dotazovatelných vlastností a kontrola souladu s API
- Bezpečný přístup: Generujte SAS tokeny s konfigurovatelnou dobou trvání pro inkasace, podepisujte HREFy aktiv pro bezpečné stahování a odebírejte tokeny – vše zabezpečené pomocí Microsoft Entra ID
Klíčové odkazy:
Začínáme
Aktuálně podporovaná prostředí
- LTS verze Node.js
- Nejnovější verze Safari, Chrome, Edge a Firefox.
Další podrobnosti najdete v zásadách podpory.
Předpoklady
- Předplatné Azure
- Zdroj pro Microsoft Planetární Počítač Pro GeoCatalog. Zdroj můžete vytvořit pomocí Azure Portal, Azure PowerShell nebo Azure CLI.
Endpoint GeoCatalogu (catalogUri) najdete v Azure Portal na stránce přehledu zdroje vašeho GeoCatalogu.
Nainstalujte balíček @azure/planetarycomputer.
Nainstalujte klientskou knihovnu Azure Planetary Computer Pro pro JavaScript s npm:
npm install @azure/planetarycomputer
Vytvořte a ověřte PlanetaryComputerProClient
Existuje několik způsobů, jak se autentizovat se službou Microsoft Planetární Počítač Pro a doporučeným způsobem je použít Microsoft Entra ID pro bezpečné, bezklíčové autentizování prostřednictvím knihovny Azure Identity. Jak začít:
- Install the Azure Identity package:
npm install @azure/identity
Zaregistrujte si novou aplikaci Microsoft Entra ID a udělte přístup k Microsoft Planetární Počítač Pro přiřazením vhodné role vašemu zástupci služby.
Nastavte hodnoty ID klienta, ID tenanta a tajného klíče klienta aplikace Microsoft Entra ID jako proměnné prostředí:
AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_CLIENT_SECRET.Create the client using DefaultAzureCredential:
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>"; // e.g., "https://your-geocatalog.geocatalogs.azure.com"
const client = new PlanetaryComputerProClient(catalogUri, credential);
Klíčové koncepty
PlanetaryComputerProClient
PlanetaryComputerProClientje hlavní rozhraní pro vývojáře využívající klientskou knihovnu Microsoft Planetární Počítač Pro. Klient poskytuje přístup k několika skupinám operací:
Provoz STAC (client.stac)
- Správa kolekcí: Vytvářejte, aktualizujte, seznamujte a mažte STAC kolekce pro organizaci vašich geoprostorových datových sad
- Správa položek: Vytvářet, číst, aktualizovat a mazat jednotlivé položky STAC v rámci kolekcí
- Vyhledávání API: Vyhledávání položek pomocí prostorových a časových filtrů, třídění a dotazovatelných vlastností
- Konfigurace: Správa možností renderování, mozaik, nastavení dlaždic, dotazovatelných prvků a typů oddílů
- API Compliance: Získejte třídy souladu STAC API a informace o vstupní stránce
Datové operace (client.data)
- Generování dlaždic: Generujte mapové dlaždice (XYZ, TileJSON, WMTS) ze sbírek, položek a mozaik
- Vizualizace dat: Vytvářejte náhledové obrázky, ořezávejte podle GeoJSON nebo ohraničovacího rámečku, extrahujte hodnoty bodů a vypočítávejte statistiky
- Operace mozaik: Registrujte mozaiky založené na vyhledávání v STAC a získávejte mozaikové dlaždice, schopnosti TileJSON a WMTS
- Legendy map: Získejte mapy tříd a intervalové legendy jako obrázky JSON nebo PNG
- Metadata majetku: Získávej sady matic dlaždic a metadata majetku pro kolekce a položky
Operace příjmu (client.ingestion)
- Zdroje ingesetu: Nastavte zdroje ingestu pomocí Managed Identity nebo SAS token authentication
- Definice vstupu: Definujte automatizovaný vstup do katalogu STAC z veřejných a soukromých datových zdrojů
- Ingestion Runs: Vytvářejte a monitorujte ingestční běhy s detailním sledováním operací
Operace sdíleného přístupového podpisu (client.sharedAccessSignature)
- Generování tokenů: Generujte SAS tokeny s konfigurovatelnou délkou trvání pro kolekce
- Podepisování majetku: Podepisujte HREFy pro bezpečné stahování spravovaných úložných aktiv
- Odebrání tokenů: Odebírat tokeny, když je to potřeba pro kontrolu přístupu
GeoCatalog
GeoKatalog je nejvyšší Azure zdroj, který uchovává a organizuje vaše geoprostorová data. Poskytuje:
- Zónově redundantní, spravované úložiště pro rastrové a datové krychle formáty
- Vestavěná optimalizace cloudu pro podporované datové typy
- Spravované STAC API pro všechna uložená data
- Integrace s bezpečností a správou identity v Azure prostřednictvím Microsoft Entra ID
STAC (Katalog spatioTemporal Asset Catalog)
STAC je otevřená specifikace pro organizaci a popis geoprostorových dat. Microsoft Planetární Počítač Pro používá STAC k poskytnutí:
- Sbírky: Logické seskupení souvisejících geoprostorových datových sad
- Položky: Jednotlivé assety (např. satelitní snímky, rastry) s metadaty
- Aktiva: Skutečné datové soubory odkazované STAC položkami
Examples
Tato sekce poskytuje úryvky kódu pokrývající běžné pracovní postupy GeoCatalogu. Pro kompletní pracovní příklady viz adresář samples .
- Seznam STAC sbírek
- Vyhledávání položek STAC
- Získejte podrobnosti o položce STAC
- Vytvoření kolekce STAC
- Mozaikové dlaždice registru a renderování
- Extrahujte body
- Generování mapových dlaždic
- Nastavení zdroje příjmu
- Správa vstupu dat
- Pořiďte si SAS token
Seznam STAC sbírek
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const collections = await client.stac.getCollections();
console.log(`Found ${collections.collections.length} collections`);
for (const collection of collections.collections) {
console.log(`- ${collection.id}: ${collection.description}`);
}
Vyhledávání položek STAC
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const searchResult = await client.stac.search({
collections: ["naip"],
datetime: "2021-01-01T00:00:00Z/2022-12-31T23:59:59Z",
limit: 10,
});
console.log(`Found ${searchResult.features.length} items`);
for (const item of searchResult.features) {
console.log(`Item ID: ${item.id}, Collection: ${item.collection}`);
}
Získejte podrobnosti o položce STAC
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const item = await client.stac.getItem("naip", "ga_m_3308421_se_16_060_20211114");
console.log(`Item ID: ${item.id}`);
console.log(`Assets: ${Object.keys(item.assets)}`);
Vytvořte STAC kolekci
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const poller = await client.stac.createCollection({
id: "my-collection",
type: "Collection",
stacVersion: "1.0.0",
description: "A collection of geospatial data",
license: "proprietary",
extent: {
spatial: { boundingBox: [[-180, -90, 180, 90]] },
temporal: { interval: [[null, null]] },
},
links: [],
});
await poller.pollUntilDone();
console.log("Collection created");
Mozaikové dlaždice registru a renderování
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const registration = await client.data.registerMosaicsSearch({
collections: ["naip"],
filterLang: "cql2-json" as const,
filter: { op: "=", args: [{ property: "naip:year" }, "2021"] },
});
console.log(`Search ID: ${registration.searchId}`);
const tileJson = await client.data.getSearchTileJson(registration.searchId, {
assets: ["image"],
});
console.log(`Tile URLs: ${tileJson.tiles}`);
Extrahujte body
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const pointData = await client.data.getItemPoint(
"naip",
"ga_m_3308421_se_16_060_20211114",
-84.41,
33.65,
{ assets: ["image"] },
);
console.log(`Coordinates: ${pointData.coordinates}`);
console.log(`Values: ${pointData.values}`);
Generování mapových dlaždic
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const tileResponse = await client.data.getTile(
"naip",
"ga_m_3308421_se_16_060_20211114",
"WebMercatorQuad",
14,
4322,
6463,
{ assets: ["image"] },
);
console.log(`Tile size: ${tileResponse.length} bytes`);
Nastavení zdroje příjmu
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const source = await client.ingestion.createSource({
id: "my-storage-source",
kind: "BlobManagedIdentity",
connectionInfo: {
containerUri: "https://mystorage.blob.core.windows.net/geospatial-data",
objectId: "00000000-0000-0000-0000-000000000000",
},
});
console.log(`Created source: ${source.id}`);
Správa vstupu dat
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const ingestion = await client.ingestion.create("my-collection", {
importType: "StaticCatalog",
displayName: "My data ingestion",
sourceCatalogUrl: "https://example.com/catalog.json",
keepOriginalAssets: true,
skipExistingItems: true,
});
console.log(`Created ingestion: ${ingestion.id}`);
Pořiďte si SAS token
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
const token = await client.sharedAccessSignature.getToken("naip");
console.log(`Token expires at: ${token.expiresOn}`);
// Sign an asset URL for secure download
const signed = await client.sharedAccessSignature.getUrl(
"https://storage.blob.core.windows.net/container/asset.tif",
);
console.log(`Signed URL: ${signed.href}`);
Troubleshooting
General
Klientská knihovna Planetary Computer Pro vyvolá výjimky definované v Azure Core.
import { DefaultAzureCredential } from "@azure/identity";
import { PlanetaryComputerProClient } from "@azure/planetarycomputer";
import { RestError } from "@azure/core-rest-pipeline";
const credential = new DefaultAzureCredential();
const catalogUri = "<your-geocatalog-endpoint>";
const client = new PlanetaryComputerProClient(catalogUri, credential);
try {
await client.stac.getCollection("non-existent-collection");
} catch (e) {
if (e instanceof RestError) {
console.log(`Status code: ${e.statusCode}`);
console.log(`Message: ${e.message}`);
}
}
Logging
Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků HTTP a odpovědí, nastavte proměnnou AZURE_LOG_LEVEL prostředí na infohodnotu . Případně můžete protokolování povolit za běhu voláním setLogLevel příkazu @azure/logger:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
Podrobnější pokyny k povolení protokolů najdete v dokumentaci k @azure/protokolovacímu balíčku.
Další kroky
Další ukázkový kód
Pro kompletní pracovní příklady viz jednotlivé ukázkové soubory:
| Scénář | Sample |
|---|---|
| Správa sbírky STAC | stacCreateCollectionSample.ts |
| STAC správa položek | stacCreateItemSample.ts |
| STAC Search | stacSearchSample.ts |
| Registrace Mosaic | dataRegisterMosaicsSearchSample.ts |
| Generování mapových dlaždic | dataGetTileSample.ts |
| Bodové hodnoty | dataGetPointSample.ts |
| Nastavení příjmu | ingestionCreateSourceSample.ts |
| Správa příjmu | ingestionCreateSample.ts |
| SAS Token | sharedAccessSignatureGetTokenSample.ts |
| Legendy o mapách | dataGetLegendSample.ts |
Další dokumentace
- Zjistěte více o Microsoft Planetární Počítač Pro
- Přečtěte si specifikaci STAC
- Podívejte se, jak nasadit geokatalogový zdroj
- Pochopte, jak spravovat přístup k Microsoft Planetární Počítač Pro
Contributing
Pokud chcete přispívat do této knihovny, přečtěte si průvodce pro přispívání a přečtěte si další informace o tom, jak sestavit a otestovat kód.
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Podrobnosti naleznete na cla.microsoft.com.
Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA, a odpovídajícím způsobem vyzdobit žádost o přijetí změn (např. popisek, komentář). Stačí postupovat podle pokynů poskytovaných robotem. Stačí to udělat jen jednou napříč všemi úložištěmi pomocí naší cla.
Tento projekt se řídí Pravidly chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování. S případnými dalšími dotazy nebo připomínkami se obraťte na adresu opencode@microsoft.com.
Azure SDK for JavaScript