python - 查询镶木地板文件 - 检查正方形是否在其他正方形内
问题描述
在 python 项目中,我打开 *.las 点云数据。这里我计算点云数据(正方形/矩形)的minY、minX、maxY、maxX值。
有一个巨大的镶木地板文件,存在建筑物的边界,就像图像中的蓝色方块一样。这个镶木地板文件有表格:
buildingMinY,buildingMinX,buildingMaxY,buildingMaxX。
查询此文件以检查点云数据中是否存在建筑物的最快执行方式是什么。
伪代码:检查 buildingMinY > minY AND < maxY ?? buildingMaxY > minY AND < maxY ??
解决方案
这个问题 应该是你的重复,但它仍然没有效率。
您所要做的就是检查内侧是否在外侧的范围内。由于您已经知道对于任何维度,minD < maxD
,您可以跳过很多比较。只需确保订单是您需要的:
if buildingMinX < minX and maxX < buildingMaxX and \
buildingMinY < minY and maxY < buildingMaxY :
# small rectangle is inside large one ... process the hit
如果您熟悉numpy
或任何其他矢量化包,您可以快速检查整个数据框。
推荐阅读
- python - 是否可以在 matplotlib/seaborn 中将 svg 宽度和高度设置为 100%
- azure - 我想拆分字符串并作为复杂的 json 字符串传递以使用逻辑应用程序形成自定义字段
- mysql - Docker Mysql 容器因“未知数据库”错误而失败(Ubuntu)
- python-3.x - 如何在 TensorFlow 中访问数据集的特征字典
- bash - 如何从自定义行开始循环遍历bash中的文件?
- google-cloud-platform - GCP 授予服务帐户使用 Deployment Manager 写入 GCS 存储桶的权限
- ruby-on-rails - Rails:Url 参数覆盖表单后参数
- python - jinja2.exceptions.TemplateSyntaxError: 意外字符'&'
- python - Python 选择向量负分量的综合方法
- rabbitmq - 如何在 Masstransit for Rabbit MQ 中设置队列长度/大小