Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per utilizzare un notebook SageMaker Studio Classic con un'immagine geospaziale SageMaker :
Dall’utilità di avvio, scegli Modifica ambiente in Notebook e risorse di calcolo.
Viene quindi visualizzata la finestra di dialogo Modifica ambiente.
Scegli il menu a discesa Immagine e seleziona Geospatial 1.0. Il tipo di istanza deve essere ml.geospatial.interactive. Non modificare i valori predefiniti delle altre impostazioni.
Scegli Seleziona.
Seleziona Crea notebook.
Puoi avviare un EOJ utilizzando un notebook Amazon SageMaker Studio Classic con un'immagine SageMaker geospaziale utilizzando il codice fornito di seguito.
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")
Nell'esempio seguente viene illustrato come creare un processo EOJ nella Regione Stati Uniti occidentali (Oregon).
#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,
)
Una volta creato il processo EOJ, viene restituito l’Arn
. Puoi utilizzare l’Arn
per identificare un processo ed eseguire ulteriori operazioni. Per conoscere lo stato di un processo, puoi eseguire sg_client.get_earth_observation_job(Arn = response['Arn'])
.
L'esempio seguente mostra come eseguire query allo stato di un processo EOJ fino al suo completamento.
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"]
Una volta completato il processo EOJ, puoi visualizzare gli output EOJ direttamente nel notebook. L'esempio seguente mostra come eseguire il rendering di una mappa interattiva.
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
L'esempio seguente mostra come la mappa può essere centrata su un'area di interesse e come l'input e l'output del processo EOJ possono essere renderizzati come livelli separati all'interno della mappa.
# 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
)
Puoi utilizzare la funzione export_earth_observation_job
per esportare i risultati del processo EOJ nel tuo bucket Amazon S3. La funzione di esportazione semplifica la condivisione dei risultati tra i team. SageMaker L'intelligenza artificiale semplifica anche la gestione dei set di dati. Puoi condividere facilmente i risultati del processo EOJ utilizzando l’ARN del processo, anziché eseguire il crawling di migliaia di file nel bucket S3. Ogni processo EOJ diventa un asset nel catalogo di dati, poiché i risultati possono essere raggruppati in base all’ARN del processo. Nell'esempio seguente viene mostrato come esportare i risultati di un processo EOJ.
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,
)
Puoi monitorare lo stato del processo di esportazione utilizzando il seguente snippet.
# 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"]}
Non ti vengono addebitati costi di archiviazione dopo aver eliminato il processo EOJ.
Per un esempio che mostra come eseguire un processo EOJ, consulta questo post del blog