Cree un trabajo de observación de la Tierra con un bloc de notas clásico de Amazon SageMaker Studio con una SageMaker imagen geoespacial - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un trabajo de observación de la Tierra con un bloc de notas clásico de Amazon SageMaker Studio con una SageMaker imagen geoespacial

Para usar un cuaderno SageMaker Studio Classic con una imagen SageMaker geoespacial:

  1. En el Lanzador, seleccione Cambiar entorno en Cuadernos y recursos de computación.

  2. A continuación, se abrirá el cuadro de diálogo Cambiar entorno.

  3. Seleccione el menú desplegable Imagen y elija Geospatial 1.0. El Tipo de instancia debe ser ml.geospatial.interactive. No cambie los valores predeterminados de las demás opciones.

  4. Elija Seleccionar.

  5. Elija Crear cuaderno.

Puede iniciar un EOJ con un bloc de notas Amazon SageMaker Studio Classic con una imagen SageMaker geoespacial mediante el código que se proporciona a continuación.

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")

En el siguiente ejemplo se muestra cómo crear un EOJ en la región Oeste de EE. UU. (Oregón).

#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 vez creado el EOJ, se le devolverá el Arn. El Arn se utiliza para identificar un trabajo y realizar más operaciones. Para obtener el estado de un trabajo, puede ejecutar sg_client.get_earth_observation_job(Arn = response['Arn']).

En el siguiente ejemplo se muestra cómo consultar el estado de un EOJ hasta que se complete.

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 vez finalizado el EOJ, puede visualizar los resultados del EOJ directamente en el portátil. En el siguiente ejemplo se muestra cómo se puede renderizar un mapa interactivo.

map = sagemaker_geospatial_map.create_map({ 'is_raster': True }) map.set_sagemaker_geospatial_client(sg_client) # render the map map.render()

El siguiente ejemplo muestra cómo se puede centrar el mapa en un área de interés y cómo la entrada y la salida del EOJ se pueden representar como capas independientes dentro del mapa.

# 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 )

Puede utilizar la función export_earth_observation_job para exportar los resultados de EOJ a su bucket de Amazon S3. La función de exportación facilita el intercambio de resultados entre equipos. SageMaker también simplifica la gestión de los conjuntos de datos. Simplemente podemos compartir los resultados del EOJ mediante el ARN del trabajo, en lugar de rastrear miles de archivos en el bucket de S3. Cada EOJ se convierte en un activo del catálogo de datos, ya que los resultados se pueden agrupar por el ARN del trabajo. El siguiente ejemplo muestra cómo se pueden exportar los resultados de un 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, )

Puede monitorear el estado de su trabajo de exportación mediante el siguiente fragmento de código.

# 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"]}

No se le cobrarán las tarifas de almacenamiento después de eliminar el EOJ.

Para ver un ejemplo que muestra cómo ejecutar un EOJ, consulte esta entrada de blog.

Para ver más ejemplos de cuadernos sobre capacidades SageMaker geoespaciales, consulte este repositorio. GitHub