2021-10-28

Thingy API for raw data: https://github.com/specknet/pdiotapp/blob/142497c9ab9ebb4ef62e2edbaf667d52cdee2097/app/src/main/java/com/specknet/pdiotapp/utils/Utils.java

 public static float[] decodeThingyPacket(byte[] values) {
        float accel_x = (float) (getIntValue(values, 0)) / (1 << 10);
        float accel_y = (float) (getIntValue(values, 2)) / (1 << 10);
        float accel_z = (float) (getIntValue(values, 4)) / (1 << 10);

        float gyro_x = (float) (getIntValue(values, 6)) / (1 << 5);
        float gyro_y = (float) (getIntValue(values, 8)) / (1 << 5);
        float gyro_z = (float) (getIntValue(values, 10)) / (1 << 5);

        float mag_x = (float) (getIntValue(values, 12)) / (1 << 4);
        float mag_y = (float) (getIntValue(values, 14)) / (1 << 4);
        float mag_z = (float) (getIntValue(values, 16)) / (1 << 4);

        return new float[]{accel_x, accel_y, accel_z, gyro_x, gyro_y, gyro_z, mag_x, mag_y, mag_z};
    }


### 提高 Python 中 Google Earth Engine (GEE) 图像下载速度的方法 在使用 GEE 的过程中,图像下载速度可能会受到多种因素的影响,包括网络状况、任务复杂度以及代码优化程度。以下是几种可以有效提升 GEE 下载速度的技术方法: #### 1. 使用批量导出功能替代逐像素下载 通过 `Export.image.toDrive()` 或其他类似的 API 方法将处理后的图像直接存储到 Google Drive 上,而不是尝试一次性加载整个图像至内存中[^2]。这种方法能够显著减少客户端的压力并加快整体流程。 ```python import ee ee.Initialize() # 定义区域影像集 region = ee.Geometry.Rectangle([78, 19, 79, 20]) image = ee.Image('LANDSAT/LC08/C01/T1_SR/LC08_145036_20140318') task_config = { 'folder': 'gee_exports', 'scale': 30, 'region': region.getInfo()['coordinates'] } # 导出任务配置 export_task = ee.batch.Export.image.toDrive(image=image.select('B4'), **task_config) export_task.start() ``` #### 2. 调整缩放比例参数 (`scale`) 适当调整请求中的分辨率设置(即 `scale` 参数),以匹配实际需求。如果不需要极高精度的数据,则降低空间分辨率会大幅削减传输量从而加速操作过程[^3]。 #### 3. 利用掩膜技术剔除无意义数据 对于含有大量无效值(如云层覆盖区)的遥感图片,在执行任何进一步分析之前先应用掩蔽函数去除这些部分。这不仅有助于精简最终成果大小还能改善性能表现。 ```python def maskS2clouds(image): qa = image.select('QA60') # Bits 10 11 表示薄雾与厚云 cloudBitMask = 1 << 10; cirrusBitMask = 1 << 11; # 创建一个没有云遮挡的新图层 maskedImage = image.updateMask(qa.bitwiseAnd(cloudBitMask).eq(0)).updateMask(qa.bitwiseAnd(cirrusBitMask).eq(0)) return maskedImage collection = ee.ImageCollection('COPERNICUS/S2').map(maskS2clouds) filtered_collection = collection.filterDate('2021-01-01', '2021-12-31') \ .filterBounds(region) mean_image = filtered_collection.mean() ``` #### 4. 并行化多线程请求 当面对大规模地理范围或者长时间序列数据分析时,考虑分割目标领域成若干子区块分别发起独立查询再汇总结果的方式可能更加高效[^1]。注意控制并发数量以免超出免费配额限制引发错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值