Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
So verwenden Sie ein SageMaker Studio Classic-Notizbuch mit einem SageMaker Geodatenbild:
Wählen Sie im Launcher unter Notebooks und Compute-Ressourcen die Option Umgebung ändern.
Als Nächstes wird das Dialogfeld „Umgebung ändern“ geöffnet.
Wählen Sie das Dropdown-Menü Bild aus und wählen Sie Geospatial 1.0. Der Instance-Typ sollte ml.geospatial.interactive sein. Ändern Sie die Standardwerte für andere Einstellungen nicht.
Wählen Sie Select (Auswählen).
Klicken Sie auf Create Notebook (Notebook erstellen).
Sie können ein EOJ mit einem Amazon SageMaker Studio Classic-Notizbuch mit einem SageMaker Geodatenbild mithilfe des unten angegebenen Codes initiieren.
import boto3
import sagemaker
import sagemaker_geospatial_map
session = boto3.Session()
execution_role = sagemaker.get_execution_role()
sg_client = session.client(service_name="sagemaker-geospatial")
Im Folgenden finden Sie ein Beispiel dafür, wie Sie ein EOJ in der Region USA West (Oregon) erstellen.
#Query and Access Data
search_rdc_args = {
"Arn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8", # sentinel-2 L2A COG
"RasterDataCollectionQuery": {
"AreaOfInterest": {
"AreaOfInterestGeometry": {
"PolygonGeometry": {
"Coordinates": [
[
[-114.529, 36.142],
[-114.373, 36.142],
[-114.373, 36.411],
[-114.529, 36.411],
[-114.529, 36.142],
]
]
}
}
},
"TimeRangeFilter": {
"StartTime": "2021-01-01T00:00:00Z",
"EndTime": "2022-07-10T23:59:59Z",
},
"PropertyFilters": {
"Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
"LogicalOperator": "AND",
},
"BandFilter": ["visual"],
},
}
tci_urls = []
data_manifests = []
while search_rdc_args.get("NextToken", True):
search_result = sg_client.search_raster_data_collection(**search_rdc_args)
if search_result.get("NextToken"):
data_manifests.append(search_result)
for item in search_result["Items"]:
tci_url = item["Assets"]["visual"]["Href"]
print(tci_url)
tci_urls.append(tci_url)
search_rdc_args["NextToken"] = search_result.get("NextToken")
# Perform land cover segmentation on images returned from the sentinel dataset.
eoj_input_config = {
"RasterDataCollectionQuery": {
"RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
"AreaOfInterest": {
"AreaOfInterestGeometry": {
"PolygonGeometry": {
"Coordinates": [
[
[-114.529, 36.142],
[-114.373, 36.142],
[-114.373, 36.411],
[-114.529, 36.411],
[-114.529, 36.142],
]
]
}
}
},
"TimeRangeFilter": {
"StartTime": "2021-01-01T00:00:00Z",
"EndTime": "2022-07-10T23:59:59Z",
},
"PropertyFilters": {
"Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 1}}}],
"LogicalOperator": "AND",
},
}
}
eoj_config = {"LandCoverSegmentationConfig": {}}
response = sg_client.start_earth_observation_job(
Name="lake-mead-landcover",
InputConfig=eoj_input_config,
JobConfig=eoj_config,
ExecutionRoleArn=execution_role,
)
Nachdem Ihr EOJ erstellt wurde, wird Arn
an Sie zurückgegeben. Sie verwenden den Arn
, um einen Job zu identifizieren und weitere Operationen durchzuführen. Um den Status eines Auftrags abzurufen, können Sie sg_client.get_earth_observation_job(Arn = response['Arn'])
ausführen.
Das folgende Beispiel zeigt, wie Sie den Status eines EOJ abfragen, bis es abgeschlossen ist.
eoj_arn = response["Arn"]
job_details = sg_client.get_earth_observation_job(Arn=eoj_arn)
{k: v for k, v in job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
# List all jobs in the account
sg_client.list_earth_observation_jobs()["EarthObservationJobSummaries"]
Nachdem das EOJ abgeschlossen ist, können Sie die EOJ-Ausgaben direkt im Notebook visualisieren. Das folgende Beispiel zeigt, wie eine interaktive Karte gerendert werden kann.
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
Das folgende Beispiel zeigt, wie die Karte auf einen Interessenbereich zentriert werden kann und die Eingabe und Ausgabe des EOJ als separate Ebenen innerhalb der Karte gerendert werden können.
# visualize the area of interest
config = {"label": "Lake Mead AOI"}
aoi_layer = map.visualize_eoj_aoi(Arn=eoj_arn, config=config)
# Visualize input.
time_range_filter = {
"start_date": "2022-07-01T00:00:00Z",
"end_date": "2022-07-10T23:59:59Z",
}
config = {"label": "Input"}
input_layer = map.visualize_eoj_input(
Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
# Visualize output, EOJ needs to be in completed status.
time_range_filter = {
"start_date": "2022-07-01T00:00:00Z",
"end_date": "2022-07-10T23:59:59Z",
}
config = {"preset": "singleBand", "band_name": "mask"}
output_layer = map.visualize_eoj_output(
Arn=eoj_arn, config=config, time_range_filter=time_range_filter
)
Sie können die export_earth_observation_job
Funktion verwenden, um die EOJ-Ergebnisse in Ihren Amazon-S3-Bucket zu exportieren. Die Exportfunktion macht es einfach, Ergebnisse teamübergreifend zu teilen. SageMaker KI vereinfacht auch die Datensatzverwaltung. Wir können die EOJ-Ergebnisse einfach mithilfe des Job-ARN teilen, anstatt Tausende von Dateien im S3-Bucket zu crawlen. Jedes EOJ wird zu einem Asset im Datenkatalog, da die Ergebnisse nach dem Job-ARN gruppiert werden können. Das folgende Beispiel zeigt, wie Sie die Ergebnisse eines EOJ exportieren können.
sagemaker_session = sagemaker.Session()
s3_bucket_name = sagemaker_session.default_bucket() # Replace with your own bucket if needed
s3_bucket = session.resource("s3").Bucket(s3_bucket_name)
prefix = "eoj_lakemead" # Replace with the S3 prefix desired
export_bucket_and_key = f"s3://{s3_bucket_name}/{prefix}/"
eoj_output_config = {"S3Data": {"S3Uri": export_bucket_and_key}}
export_response = sg_client.export_earth_observation_job(
Arn=eoj_arn,
ExecutionRoleArn=execution_role,
OutputConfig=eoj_output_config,
ExportSourceImages=False,
)
Sie können den Status Ihres Exportauftrags mithilfe des folgenden Snippets überwachen.
# Monitor the export job status
export_job_details = sg_client.get_earth_observation_job(Arn=export_response["Arn"])
{k: v for k, v in export_job_details.items() if k in ["Arn", "Status", "DurationInSeconds"]}
Nach dem Löschen des EOJ werden Ihnen keine Speichergebühren berechnet.
Ein Beispiel, das zeigt, wie ein EOJ ausgeführt wird, finden Sie in diesem Blogbeitrag
Weitere Notizbücher zu SageMaker Geodatenfunktionen finden Sie in diesem GitHub Repository