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.
Créez un job d'observation de la Terre à l'aide d'un bloc-notes Amazon SageMaker Studio Classic avec une SageMaker image géospatiale
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