Press "Enter" to skip to content

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况

啮齿类动物,如老鼠和小鼠,与许多健康风险有关,已知可以传播超过35种疾病。识别高密度鼠类活动区域可以帮助地方政府和害虫控制组织有效规划干预措施,并灭除啮齿类动物。

在本文中,我们展示了如何使用Amazon SageMaker的地理空间能力监控和可视化啮齿类动物种群。然后,我们可视化了啮齿类动物对植被和水体的侵染效果。最后,我们将报道的天花疫情病例数量与某个地区的啮齿类动物目击情况进行了相关性分析和可视化。Amazon SageMaker使数据科学家和机器学习(ML)工程师更容易使用地理空间数据构建、训练和部署模型。该工具使访问地理空间数据源、运行专用处理操作、应用预训练的ML模型以及更快、更大规模地使用内置可视化工具变得更加容易。

笔记本电脑

首先,我们使用一个带有地理空间图像的Amazon SageMaker Studio笔记本电脑,按照“入门Amazon SageMaker地理空间能力”中的步骤进行操作。

数据访问

地理空间图像预先安装有SageMaker地理空间能力,使得为地理空间分析和ML丰富数据更加容易。在本文中,我们使用来自Sentinel-2的卫星图像以及来自开源NYC开放数据的啮齿类动物活动和天花数据集。

首先,我们使用啮齿类动物活动数据集,并提取啮齿类动物目击和检查的纬度和经度。然后,我们使用可读的街道地址对此位置信息进行丰富。我们在SageMaker Studio笔记本电脑中创建一个矢量丰富作业(VEJ),以运行反向地理编码操作,以便将地理坐标(纬度、经度)转换为可读的地址,由Amazon位置服务提供支持。我们如下所示创建VEJ:

import boto3
import botocore
import sagemaker
import sagemaker_geospatial_map

region = boto3.Session().region_name
session = botocore.session.get_session()
execution_role = sagemaker.get_execution_role()

sg_client= session.create_client(
    service_name='sagemaker-geospatial',
    region_name=region
)
response = sg_client.start_vector_enrichment_job(
    ExecutionRoleArn=execution_role,
    InputConfig={
        'DataSourceConfig': {
            'S3Data': {
                'S3Uri': 's3://<bucket>/sample/rodent.csv'
            }
        },
        'DocumentType': 'CSV'
    },
    JobConfig={
        "ReverseGeocodingConfig": { 
         "XAttributeName": "longitude",
         "YAttributeName": "latitude"
      }
    },
    Name='vej-reversegeo',
)

my_vej_arn = response['Arn']

在地区中可视化啮齿类动物活动

现在,我们可以使用SageMaker地理空间能力来可视化啮齿类动物目击情况。在VEJ完成后,我们将作业的输出导出到Amazon S3存储桶。

sg_client.export_vector_enrichment_job(
    Arn=my_vej_arn,
    ExecutionRoleArn=execution_role,
    OutputConfig={
        'S3Data': {
            'S3Uri': 's3://<bucket>/reversegeo/'
        }
    }
)

当导出完成后,您将在Amazon简单存储服务(Amazon S3)存储桶中看到输出CSV文件,该文件包含您的输入数据(经度和纬度坐标)以及附加的列:地址编号、国家、标签、自治市、邻居、邮政编码和该位置的地区。

根据VEJ生成的输出文件,我们可以使用SageMaker地理空间能力将输出叠加在基本地图上,并提供分层可视化,以便更容易进行协作。SageMaker地理空间能力提供由Foursquare Studio提供支持的内置可视化工具,通过SageMaker笔记本电脑中的SageMaker地理空间Map SDK本地工作。下面,我们可以可视化啮齿类动物目击情况,并获取每个数据点的可读地址。每个啮齿类动物目击情况数据点的地址信息对于啮齿类动物检查和治理目的可能很有用。

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况 四海 第1张

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况 四海 第2张

分析啮齿动物侵扰对植被和水体的影响

为了分析啮齿动物侵扰对植被和水体的影响,我们需要将每个位置分类为植被、水体和裸地。让我们看看如何使用这些地理空间能力来进行分析。

SageMaker中的新地理空间能力更容易访问地理空间数据,如Sentinel-2和Landsat 8。内置的地理空间数据集访问可节省数周的工作量,否则将被用于收集和处理来自各种数据提供商和供应商的数据。此外,这些地理空间能力提供了一个预训练的土地利用和地表覆盖(LULC)分割模型,用于识别地球表面的物质,如植被、水体和裸地。

我们使用这个LULC机器学习模型来分析啮齿动物对植被和水体的影响。

在下面的代码片段中,我们首先定义了纽约市感兴趣区域的坐标(aoi_coords)。然后我们创建一个地球观测作业(EOJ)并选择LULC操作。SageMaker会为EOJ下载和预处理卫星图像数据。接下来,SageMaker会自动运行EOJ的模型推断。EOJ的运行时间将根据处理的图像数量而异,从几分钟到几小时不等。您可以使用get_earth_observation_job函数监视EOJ的状态,并在地图上可视化EOJ的输入和输出。

aoi_coords = [
    [
            [
              -74.13513011934334,
              40.87856296920188
            ],
            [
              -74.13513011934334,
              40.565792636343616
            ],
            [
              -73.8247144462764,
              40.565792636343616
            ],
            [
              -73.8247144462764,
              40.87856296920188
            ],
            [
              -74.13513011934334,
              40.87856296920188
            ]
    ]
]

eoj_input_config = {
    "RasterDataCollectionQuery": {
        "RasterDataCollectionArn": "arn:aws:sagemaker-geospatial:us-west-2:378778860802:raster-data-collection/public/nmqj48dcu3g7ayw8",
        "AreaOfInterest": {
            "AreaOfInterestGeometry": {
                "PolygonGeometry": {
                    "Coordinates": aoi_coords
                }
            }
        },
        "TimeRangeFilter": {
            "StartTime": "2023-01-01T00:00:00Z",
            "EndTime": "2023-02-28T23:59:59Z",
        },
        "PropertyFilters": {
            "Properties": [{"Property": {"EoCloudCover": {"LowerBound": 0, "UpperBound": 2.0}}}],
            "LogicalOperator": "AND",
        },
    }
}
eoj_config = {
  "LandCoverSegmentationConfig": {}
}

response = geospatial_client.start_earth_observation_job(
    Name="eoj-rodent-infestation-lulc-example",
    InputConfig=eoj_input_config,
    JobConfig=eoj_config,
    ExecutionRoleArn=execution_role,
)
eoj_arn = response["Arn"]
eoj_arn

Map = sagemaker_geospatial_map.create_map()
Map.set_sagemaker_geospatial_client(sg_client)

Map.render()

time_range_filter = {
    "start_date": "2023-01-01T00:00:00Z",
    "end_date": "2023-02-28T23: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
)

为了可视化啮齿动物在植被上的分布,我们将啮齿动物的人口和观测数据叠加在土地覆盖分割模型的预测结果上。这个可视化可以帮助我们定位啮齿动物的人口,并分析其在植被和水体上的情况。

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况 四海 第3张

可视化猴痘病例并与啮齿动物数据相关联

为了可视化猴痘病例与啮齿动物观测数据之间的关系,我们添加了猴痘数据集和纽约市行政区界限的地理JSON文件。请参考以下代码:

nybb = pd.read_csv("./nybb.csv")
monkeypox = pd.read_csv("./monkeypox.csv")
dataset = Map.add_dataset({
    "data": nybb
}, auto_create_layers=False)
dataset = Map.add_dataset({
    "data": monkeypox
}, auto_create_layers=False)

在SageMaker Studio笔记本中,我们可以使用由Foursquare提供支持的可视化工具来在地图中添加图层和图表。在这里,我们将猴痘数据添加为图表,以显示每个行政区的猴痘病例数量。为了查看猴痘病例和啮齿动物观测数据之间的关联,我们添加了行政区界限作为多边形图层,并添加了代表啮齿动物活动的热力图图层。行政区界限图层的颜色与猴痘数据图表相匹配。正如我们所看到的,曼哈顿行政区展示了高密度的啮齿动物观测数据,并记录了最高数量的猴痘病例,其次是布鲁克林行政区。

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况 四海 第4张

<p这一点得到了对每个行政区啮齿动物观测数据浓度和猴痘病例之间相关性进行简单统计分析的支持。计算结果得到了一个r值为0.714,这意味着正相关。

r = np.corrcoef(borough_stats['Concentration (sightings per square km)'], borough_stats['Monkeypox Cases'])

使用Amazon SageMaker的地理空间能力分析啮齿类动物的入侵情况 四海 第5张

结论

在本文中,我们演示了如何利用SageMaker的地理空间能力获取啮齿动物观测数据的详细地址,并可视化啮齿动物对植被和水体的影响。这可以帮助地方政府和害虫控制组织有效地制定干预计划并消灭啮齿动物。我们还使用内置的可视化工具将啮齿动物观测数据与该地区的猴痘病例进行了相关性分析。通过利用矢量丰富和EOJs以及内置的可视化工具,SageMaker的地理空间能力消除了处理大规模地理空间数据集、模型训练和推理的挑战,并提供了使用3D加速图形和内置可视化工具在交互式地图上快速探索预测和地理空间数据的能力。

您可以通过以下两种方式开始使用SageMaker的地理空间能力:

  • 通过SageMaker地理空间UI,作为SageMaker Studio UI的一部分
  • 通过具有SageMaker地理空间镜像的SageMaker笔记本

要了解更多信息,请访问Amazon SageMaker的地理空间功能和入门Amazon SageMaker地理空间功能。此外,访问我们的GitHub存储库,其中包含有关SageMaker地理空间功能的几个示例笔记本。

Leave a Reply

Your email address will not be published. Required fields are marked *