所以我有一组来自工厂传感器的位置数据。它从已知的纬度/经度位置产生以米为单位的 x、y 和 z 信息。我有一个函数可以转换从纬度/经度以米为单位的距离,但我需要使用毕达哥拉斯函数中的 x 和 y 数据来确定这一点。让我尝试通过传感器提供的 JSON 数据示例来澄清一下。
[
{
"id": "84eb18677194",
"name": "forklift_0001",
"areaId": "Tracking001",
"areaName": "Hall1",
"color": "#FF0000",
"coordinateSystemId": "CoordSys001",
"coordinateSystemName": null,
"covarianceMatrix": [
0.82,
-0.07,
-0.07,
0.55
],
"position": [ #this is the x,y and z data, in meters from the ref point
18.11,
33.48,
2.15
],
在这个分支中,叉车距离参考纬度/经度为 18.11m,向上为 33.38m。传感器高 2.15m,这是我不需要的恒定信息。要计算出与参考点的距离,我需要使用毕达哥拉斯,然后将该数据转换回纬度/经度,以便我的分析工具可以呈现它。
我的问题(就 python 而言)是我无法弄清楚如何让它将 18.11 和 33.38 视为 x 和 y 并告诉它完全忽略 2.15。这是我到目前为止所拥有的。
import math
import json
import pprint
import os
from glob import iglob
rootdir_glob = 'C:/Users/username/Desktop/test_folder**/*"' # Note the
added asterisks, use forward slash
# This will return absolute paths
file_list = [f for f in
iglob('C:/Users/username/Desktop/test_folder/13/00**/*', recursive=True)
if os.path.isfile(f)]
for f in file_list:
print('Input file: ' + f) # Replace with desired operations
with open(f, 'r') as f:
distros = json.load(f)
output_file = 'position_data_blob_14' + str(output_nr) + '.csv' #output file name may be changed
def pythagoras(a,b):
value = math.sqrt(a*a + b*b)
return value
result = pythagoras(str(distro['position'])) #I am totally stuck here :/
print(result)
这段脚本是一个更广泛的项目的一部分,它通过机器和人以及一天中的工作和非工作时间来解析文件。
如果有人能给我一些关于如何使毕达哥拉斯部分工作的提示,我将不胜感激。我不确定我是否应该将它定义为一个函数,但是当我输入这个时,我想知道它是否应该是一个使用 x 和 y 并忽略 x 的“for”循环。
所有的帮助真的很感激。