Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Microsoft Planetary Computer Pro egy földrajzi adatkezelő szolgáltatás, amely az Azure hiperskálázási infrastruktúrájára épül. A GeoCatalog egy Azure-alapú erőforrás, amely alapvető lehetőségeket biztosít a térinformatikai adathalmazok befogadására, kezelésére, keresésére és terjesztésére a SpatioTemporal Asset Catalog (STAC) nyílt specifikációjával.
Főbb képességek
- STAC gyűjteménykezelés: Létrehozz, olvass, frissítse és törölje a STAC gyűjteményeket és elemeket, hogy rendszerezze a földi adathalmazaid
- Gyűjtemény konfiguráció: Konfiguráld a renderelési lehetőségeket, mozaikokat, csempékbeállításokat és lekérdezéseket a lekérdezések teljesítményének és vizualizációjának optimalizálására
- Adatvizualizáció: Térképlapok generálása (XYZ, TileJSON, WMTS), előnézeti képek, GeoJSON vagy határozó doboz szerinti vágás, pontértékek kinyerése, statisztikák számítása
- Mosaic műveletek: Regisztrálni a STAC keresésalapú mozaikokat pixel szerinti adatlekérdezéshez és lekérdezéshez, több elemből csempéket generálni, valamint elérni a TileJSON és WMTS funkciókat
- Térkép Feliratok: Előre meghatározott színtérképes térképek jelvények (kategorizus) és intervallum legendák (folyamatos) előre meghatározott színtérképekkel JSON vagy PNG képként kell letölteni
- Adatfelvétel: Feltöltési források beállítása (Managed Identity vagy SAS token), STAC katalógusok felvételeinek meghatározása, valamint felvételi futtatások létrehozása és nyomon követése
- STAC API műveletek: Teljes CRUD műveletek az elemeken, keresés téri/időbeli szűrőkkel és rendezéssel, lekérdezésre alkalmas tulajdonságok lekérése, valamint API megfelelőség ellenőrzése
- Biztonságos hozzáférés: SAS tokenek generálása konfigurálható időtartamgal a gyűjtésekhez, eszköz HREF-ek aláírása biztonságos letöltésekhez, és tokenek visszavonása – mindezt a Microsoft Entra ID-n keresztül védve
Főbb hivatkozások:
Kezdő lépések
Jelenleg támogatott környezetek
- LTS verziók a Node.js számára
- A Safari, a Chrome, az Edge és a Firefox legújabb verziói.
További részletekért lásd a támogató szabályzatunkat
Prerequisites
- Azure-előfizetés
- Egy Microsoft Planetary Computer Pro GeoCatalog forrás. Az erőforrást létrehozhatod az Azure Portal-on, Azure PowerShell-en vagy Azure CLI-n keresztül.
A GeoCatalog végpont (catalogUri) megtalálható az Azure Portal-ban, a GeoCatalog erőforrás áttekintési oldalán.
Telepítse a(z) @azure/planetarycomputer csomagot
Telepítsd az Azure Planetary Computer Pro klienskönyvtárát JavaScripthez a következőképpen npm:
npm install @azure/planetarycomputer
PlanetaryComputerProClient létrehozása és hitelesítése
Számos módja van a hitelesítésnek a Microsoft Planetary Computer Pro szolgáltatással, és a javasolt mód a Microsoft Entra ID használata biztonságos, kulcs nélküli hitelesítéshez az Azure Identity könyvtáron keresztül. Első lépések:
- Telepítse az Azure Identity csomagot:
npm install @azure/identity
Regisztráljon egy új Microsoft Entra ID alkalmazást, és biztosíts hozzáférést a Microsoft Planetary Computer Pro-hoz azzal, hogy a megfelelő szerepet rendeli a szolgáltatási vezetődnek.
Állítsa be a Microsoft Entra ID alkalmazás ügyfélazonosítójának, bérlőazonosítójának és ügyféltitkának értékeit környezeti változóként:
AZURE_CLIENT_ID,AZURE_TENANT_ID,AZURE_CLIENT_SECRET.Hozd létre az ügyfél DefaultAzureCredential segítségével:
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);
főbb fogalmak
PlanetaryComputerProClient
PlanetaryComputerProClientez a Microsoft Planetary Computer Pro klienskönyvtárat használó fejlesztők elsődleges interfésze. Az ügyfél több műveleti csoporthoz is hozzáférést biztosít:
STAC műveletek (client.stac)
- Gyűjteménykezelés: Létrehozz, frissítsd, listázd és töröld a STAC gyűjteményeket, hogy rendszerezd a térinformatikai adathalmazaid
- Elemkezelés: Egyedi STAC elemek létrehozása, olvasása, frissítése és törlése a gyűjteményekben
- Keresési API: Keress elemeket térbeli és időbeli szűrőkkel, rendezéssel, valamint lekérdezhető tulajdonságokkal
- Konfiguráció: Renderelési opciók, mozaikok, csempe beállítások, lekérdezések és partíciótípusok kezelése
- API megfelelőség: STAC API megfelelőségi osztályok és landing page információk lekérése
Adatműveletek (client.data)
- Csempe generálása: Térképcsempéket generálni (XYZ, TileJSON, WMTS) gyűjteményekből, tárgyakból és mozaikokokból
- Adatvizualizáció: Előnézetes képek létrehozása, GeoJSON vagy korlátzó doboz alapján vágva, pontértékek kinyerése, statisztikák számítása
- Mosaic műveletek: STAC keresésalapú mozaikok regisztrálása, mozaik csempék, TileJSON és WMTS képességek visszakeresése
- Térkép Legendák: Szerezd be az osztálytérkép- és intervallum legendákat JSON vagy PNG képként
- Eszköz metaadat: Csempe mátrix halmazok és eszköz metaadatok lekérdezése gyűjteményekhez és elemekhez
Felvételi műveletek (client.ingestion)
- Felvételi források: Feltöltési források beállítása Managed Identity vagy SAS token hitelesítéssel
- Felvételi definíciók: Határozzuk meg az automatizált STAC katalógusfelvételt nyilvános és magán adatforrásokból
- Felvételi futások: Részletes műveletkövetéssel hozza létre és figyelje a felvételi futamokat
Megosztott hozzáférési aláírási műveletek (client.sharedAccessSignature)
- Token generálás: SAS tokenek generálása konfigurálható időtartamgal a gyűjteményekhez
- Asset aláírás: Asset HREF-ek aláírása biztonságos letöltésekhez menedzselt tárolóeszközök letöltéséhez
- Token visszavonás: Tokenek visszavonása, ha szükséges a hozzáférés szabályozásához
GeoCatalog
A GeoCatalog az Azure legfelső szintű erőforrása, amely tárolja és rendszerzi a földrajzi adataidat. A következő lehetőségeket biztosítja:
- Zónaredundáns, kezelt tároló raszter- és adatkockás formátumokhoz
- Beépített felhőoptimalizálás támogatott adattípusokhoz
- Egy menedzselt STAC API minden tárolt adathoz
- Integráció az Azure biztonságával és identitásmenedzsmentjével a Microsoft Entra ID-n keresztül
STAC (SpatioTemporal Asset Catalog)
A STAC egy nyílt specifikáció a földi adatok rendszerezésére és leírására. Microsoft Planetary Computer Pro a STAC-ot használja a következőkért:
- Gyűjtemények: Kapcsolódó földi adathalmazok logikai csoportosításai
- Elemek: Egyéni eszközök (pl. műholdképek, raszterek) metaadatokkal
- Erőforrások: A STAC Items által hivatkozott tényleges adatfájlok
Examples
Ez a rész kódrészleteket tartalmaz, amelyek a GeoCatalog gyakori munkafolyamatait fedik le. A teljes munka példákért lásd a minták könyvtárát.
- STAC gyűjtemények listája
- STAC tárgyak keresése
- Szerezd meg a STAC tétel részleteit
- STAC-gyűjtemény létrehozása
- Mozaikcsempéket regisztrálni és renderelni
- Kinyerési pontértékek
- Térkép csempék generálása
- Felvételi forrás beállítása
- Adatfelvételi menedzsment
- Szerezz egy SAS tokent
STAC gyűjtemények listája
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}`);
}
STAC tárgyak keresése
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}`);
}
Szerezd meg a STAC tétel részleteit
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)}`);
Hozz létre egy STAC gyűjteményt
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");
Mozaikcsempéket regisztrálni és renderelni
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}`);
Kinyerési pontértékek
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}`);
Térkép csempék generálása
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`);
Felvételi forrás beállítása
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}`);
Adatfelvételi menedzsment
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}`);
Szerezz egy SAS tokent
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}`);
Hibaelhárítás
General
A Planetary Computer Pro klienskönyvtár kivételeket hoz fel, amelyeket az Azure Core definiál.
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
A naplózás engedélyezése segíthet a hibákról szóló hasznos információk feltárásában. A HTTP-kérések és válaszok naplójának megtekintéséhez állítsa a környezeti változót a AZURE_LOG_LEVEL következőre info: . Alternatívaként a naplózás futásidőben is engedélyezhető a setLogLevel hívásával a @azure/logger.
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
A naplók engedélyezésére vonatkozó részletesebb útmutatásért tekintse meg a @azure/logger csomag dokumentációit.
Következő lépések
További mintakód
Teljes munkapéldákért lásd az egyes mintafájlokat:
| Scenario | Sample |
|---|---|
| STAC gyűjtési menedzsment | stacCreateCollectionSample.ts |
| STAC Item Management | stacCreateItemSample.ts |
| STAC keresés | stacSearchSample.ts |
| Mosaic regisztráció | dataRegisterMosaicsSearchSample.ts |
| Térkép csempe generálása | dataGetTileSample.ts |
| Pontértékek | dataGetPointSample.ts |
| Felvételi beállítás | ingestionCreateSourceSample.ts |
| Lenyelés kezelése | ingestionCreateSample.ts |
| SAS-token | sharedAccessSignatureGetTokenSample.ts |
| Térképlegendák | dataGetLegendSample.ts |
További dokumentáció
- Tudjon meg többet a Microsoft Planetary Computer Pro-ról
- Olvasd el a STAC specifikációt
- Lásd, hogyan telepíthetsz egy GeoCatalog erőforrást
- Ismerd meg, hogyan kezeld a Microsoft Planetary Computer Pro-hoz való hozzáférést
Contributing
Ha szeretnél hozzájárulni ehhez a könyvtárhoz, kérjük, olvasd el a hozzájárulás útmutatót hogy többet megtudj arról, hogyan lehet elkészíteni és tesztelni a kódot.
Ez a projekt üdvözli a hozzájárulásokat és javaslatokat. A legtöbb hozzájárulás megköveteli, hogy elfogadja a közreműködői licencszerződést (CLA), amely kimondja, hogy önnek joga van a hozzájárulás használatára, és valóban meg kell adnia nekünk a jogosultságokat a hozzájárulás használatára. A részletekért látogasson el a cla.microsoft.com oldalra.
A lekéréses kérelem elküldésekor a CLA-robot automatikusan meghatározza, hogy meg kell-e adnia egy CLA-t, és megfelelően kell-e díszítenie a lekéréses kérelmet (például címkét, megjegyzést). Egyszerűen kövesse a robot utasításait. Ezt csak egyszer kell elvégeznie az összes adattárban a CLA használatával.
Ez a projekt a Microsoft nyílt forráskóddal kapcsolatos viselkedési szabályzata alapján működik. További információért tekintse át a viselkedési szabályzat GYIK dokumentumát, illetve további kérdések vagy megjegyzések esetén írjon az opencode@microsoft.com e-mail-címre.
Azure SDK for JavaScript