Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour utiliser un bloc-notes SageMaker Studio Classic avec une image SageMaker géospatiale :
À partir de Launcher (Lanceur), choisissez Change environment (Modifier l'environnement) sous Notebooks and compute resources (Blocs-notes et ressources de calcul).
Ensuite, la boîte de dialogue Change environment (Modifier l'environnement) s'ouvre.
Sélectionnez la liste déroulante Image et choisissez Geospatial 1.0. Le Type d'instance doit être ml.geospatial.interactive. Ne modifiez pas les valeurs par défaut pour les autres paramètres.
Choisissez Select (Sélectionner).
Choisissez Create Notebook (Créer un bloc-notes).
Vous pouvez lancer un EOJ à l'aide d'un bloc-notes Amazon SageMaker Studio Classic avec une image SageMaker géospatiale à l'aide du code fourni ci-dessous.
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")
L'exemple suivant montre comment créer une tâche d'observation de la Terre dans la région USA Ouest (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,
)
Une fois votre tâche d'observation de la Terre créée, l'Arn
vous est renvoyé. Vous utilisez l'Arn
pour identifier une tâche et effectuer d'autres opérations. Pour obtenir le statut d'une tâche, vous pouvez exécuter sg_client.get_earth_observation_job(Arn = response['Arn'])
.
L'exemple suivant illustre comment interroger le statut d'une tâche d'observation de la Terre jusqu'à ce qu'elle soit terminée.
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"]
Une fois la tâche d'observation de la Terre terminée, vous pouvez visualiser ses sorties directement dans le bloc-notes. L'exemple suivant illustre comment effectuer le rendu d'une carte interactive.
map = sagemaker_geospatial_map.create_map({
'is_raster': True
})
map.set_sagemaker_geospatial_client(sg_client)
# render the map
map.render()
L'exemple suivant illustre comment la carte peut être centrée sur une zone d'intérêt et comment les entrées et sorties de la tâche d'observation de la Terre peuvent être rendues sous forme de couches distinctes au sein de la carte.
# 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
)
Vous pouvez utiliser la fonction export_earth_observation_job
pour exporter les résultats de la tâche dans votre compartiment Amazon S3. La fonction d'exportation facilite le partage des résultats entre les équipes. SageMaker L'IA simplifie également la gestion des ensembles de données. Il suffit de partager les résultats de la tâche d'observation de la Terre à l'aide de l'ARN de la tâche, plutôt que d'indexer des milliers de fichiers dans le compartiment S3. Chaque tâche d'observation de la Terre devient une ressource dans le catalogue de données, car les résultats peuvent être regroupés par l'ARN de la tâche. L'exemple suivant illustre comment exporter les résultats d'une tâche d'observation de la Terre.
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,
)
Vous pouvez surveiller le statut de votre tâche d'exportation en utilisant l'extrait de code suivant.
# 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"]}
Aucun frais de stockage ne vous est facturé une fois que vous avez supprimé la tâche d'observation de la Terre.
Pour obtenir un exemple d'exécution d'une tâche d'observation de la Terre, consultez ce billet de blog