这是我的首篇博客,简单记录一下

首先我想说说为什么要写这个博客呢?原因有二

其一,为了分享在自己在学习中遇到的问题以及解决方法。我在学习的过程中深知这种学习无厘头的感觉。
其次,为了锻炼自己的表达能力(从遣词造句上面提升自己的表达能力)。我知道自己的表达真的真的太烂了,一点逻辑也没有。

正文开始:

1.保证所需要的包安装好。struct,numpy,pandas等
2.下述的代码中,第一个linear_correction就是主程序,传入相应的文件就可以实现InSAR大气改正(相应的文件读取代码为read_data)。
3.第二个read_data函数是读取InSAR数据的代码(也就是二进制文件),我这里使用的是sarscape生成的文件。
注:读取数据是需要注意行列号!!!如果图像显示不正确,试着交换行列号数值。
注:python显示的图像可能会存在一些问题(和matlab相比图像可能显示不完全,即有些地方看着像是没有值。其实,是有值的,可能是python成像方式不同吧)。
注:在主程序中,lat,lon就是经纬度数据文件,这里可以不传入这两个文件,我是为了后续的处理才在这里写了这两个数据的读取。
注:有任何的问题望指正!接受建议,无论是代码编写,或是语言表达的逻辑。
注:转载请标明出处,谢谢!!

import numpy as np
import pandas as pd
from read_data import xshowdef linear_correction(phase, height, height_data_without_nan):""":param phase:phase data ----> ndarray:param height: height data ----> ndarray:param height_data_without_nan::return:"""phase = phaseheight = heightdata = height_data_without_nanA = np.vstack([height, np.ones(len(height))]).T   # np.ones_like# 获得最小二乘系数a, b = np.linalg.lstsq(A, phase.T, rcond=None)[0]# 使用原始dem模拟高程相关大气相位original_height = data.dropna()original_height_array = original_height['height'].values# 通过已知的高程数据及拟合的最小二乘参数计算高程相关大气相位atm_phase = np.dot(original_height_array, a) + b# 根据原始高程数据的非nan值的index来使得根据高程得到的预测相位写入CSV文件中predict_ = pd.DataFrame(pd.Series(index=data[~data['phase'].isna()].index,data=np.array(atm_phase).astype(float)))data['predict_phase'] = predict_# 获得改正后的相位data['corrected_phase'] = data['phase'] - data['predict_phase']return dataif __name__ == '__main__':phase_data = xshow(filename='./data/phase', nx=1200, nz=1200)  # ndarrayheight_data = xshow(filename='./data/dem', nx=1200, nz=1200)  # ndarraylon_data = xshow(filename='./data/lon', nx=1200, nz=1200)  # ndarraylat_data = xshow(filename='./data/lat', nx=1200, nz=1200)  # ndarraydata = pd.DataFrame(data=None, columns=['phase', 'lon', 'lat'])data['phase'] = phase_data.flatten()data['lon'] = lon_data.flatten()data['lat'] = lat_data.flatten()data['height'] = lon_data.flatten()phase = data.dropna()['phase'].valueslon = data.dropna()['lon'].valueslat = data.dropna()['lat'].valuesheight = data.dropna()['height'].valuesdata = linear_correction(phase, height, data['height'].dropna().values)print()

下面的代码命名为read_data.py

import numpy as np
import matplotlib.pyplot as plt
import structdef xshow(filename, nx, nz):""":param filename: InSAR数据的路径,可以是相对路径,可以是绝对路径:param nx: 行号(如果显示的图像不对,可以试着设置为列号,nz设置为行号):param nz: 列号 (如果显示的图像不对,可以试着设置为行号,nx设置为列号):return: 二维矩阵"""f = open(filename, 'rb')pic = np.zeros((nx, nz))for i in range(nx):for j in range(nz):data = f.read(4)elem = struct.unpack("f", data)[0]pic[i][j] = elemf.close()return picif __name__ == '__main__':file = r''cols = 1200lines = 1200data = xshow(filename=file, nx=cols, nz=lines)plt.imshow(data)plt.show()

InSAR对流层延迟相位线性改正方法相关推荐

  1. 【数字信号处理】线性常系数差分方程 ( “ 线性常系数差分方程 “ 与 “ 线性时不变系统 “ 关联 | 根据 “ 线性常系数差分方程 “ 与 “ 边界条件 “ 确定系统是否是 线性时不变系统方法 )

    文章目录 一." 线性常系数差分方程 " 与 " 线性时不变系统 " 关联 二.根据 " 线性常系数差分方程 " 与 " 边界条件 ...

  2. GNSS精密单点定位学习:天线相位中心改正文件.atx文件格式说明

    天线相位中心改正文件 IGS官方说明文件 center positiin(PCO):天线平均相位中心(瞬时相位中心平均值)与天线参考点(ARP)之间的偏差,称为天线相位中心偏差.(2006年11月以前 ...

  3. matlab中枝切法解包裹,一种基于改进枝切法的激光散斑相位解包裹方法与流程

    本发明属于激光散斑干涉测量领域,涉及一种激光散斑相位解包裹方法. 背景技术: 散斑干涉相位图解包裹是激光散斑测量的关键步骤,Goldstein枝切法解包裹算法由于可识别残差点,防止误差传递,解缠精度高 ...

  4. [学习笔记]天线相位中心改正

    天线相位中心改正 文章目录 天线相位中心改正 1. 相关概念: 2. 天线相位中心改正 2.1 卫星天线相位中心改正 2.2 接收机天线相位中心改正 3. IGS提供的天线相位改正文件 3.1 绝对天 ...

  5. MATLAB加入螺旋相位板调制,连续型螺旋相位板设计方法与流程

    本发明涉及光学元件设计,尤其是螺旋相位板设计,属于光学技术领域. 背景技术: 目前,螺旋相位板是一种厚度与旋转方位角成正比的透明玻璃板,它可以将高功率平面光束转化为带有轨道角动量的涡旋光束,这种高功率 ...

  6. 【数据分析学习】线性降维方法

    主成分分析法PCA 主成分分析通过线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此达到使用较少的数据维度来保留较多的原数据点特性的效果. from sklear ...

  7. 汇承4.0蓝牙BLE串口助手HC-COM的使用方法及出错的原因和改正方法

       本文主要介绍在使用汇承4.0蓝牙BLE串口助手HC-COM,通过手机向蓝牙模块发送数据.或者通过手机向与蓝牙模块连接的单片机发送指令时,串口中断函数的编写方法及出错的原因和改正方法    我们怎 ...

  8. 王和勇计算机软件,图像空间中的鉴别型局部线性嵌入方法

    图像空间中的鉴别型局部线性嵌入方法 黄晓华,梁超,郑文明(东南大学儿童发展与学习科学教育部重点实验室,南京 210096;东南大学学习科学研究中心,南京 210096;东南大学信息科学与工程学院,南京 ...

  9. 项目一 线性门控开关方法二

    DAY2 项目一 线性门控开关方法二 1.由DAY1的项目一生成的泵表如下图所示,元器件成本为2.43元,在市场上缺少竞争力,下面将设计出一个成本更低的方法. 2.用四个分立的二极管来搭整流桥,如下图 ...

最新文章

  1. 【公测中】阿里云发布国内首个大数据双活容灾服务,满足高要求大数据灾备场景...
  2. 自动转发outlook的邮件
  3. 建博客的原因。。。。
  4. python中怎么查看二进制转换的数据_python处理二进制数据的方法
  5. 家长必读:不想逼孩子,你应该这样做
  6. 【Jmeter篇】jmeter Ant Jenkins接口自动化测试集成之半路逆转(二)
  7. oracle 计算复杂 数据跑不出来 如何分批次_如何配置PG的数据库缓冲
  8. 判断浏览器 插件 jquery.ua.js
  9. 团队管理心得--建团队,管事理人
  10. DiskImage磁盘镜像工具下载使用手册
  11. 【LKA】国内车道相关数据
  12. step5: 编写spider爬取
  13. 【专题】我国银行系科技子公司比较研究
  14. Arduino 寄存器(ADC)
  15. Kotlin入门-数据类与密封类 的解脱,由繁至简
  16. 计算机中通道的基本功能,Photoshop中各个面板的基本功能介绍 -电脑资料
  17. excel怎么拆分表格
  18. 2018_9_8 模拟题
  19. LC串联震荡电路谐振频率
  20. Mac 系统打开 word 显示全黑怎么处理

热门文章

  1. iPhone 手机非常有必要下载的6款App,个个实用性爆表
  2. php开发中常用函数总结
  3. windows tomcat 无法启动
  4. 如何快速更改笔记本开机界面上的用户名(doge)
  5. 微信论坛交流小程序系统毕业设计毕设(5)任务书
  6. win7 网络打印机 未授予用户在此计算机上的请求登录类型,如何解决Win7“未授予用户在此计算机上的请求登录类型quot;问题 - Win10专业版官网...
  7. 我花50元赚来190元的贴吧推广经验
  8. 我的奋斗史(3)——江湖险恶
  9. 用TensorFlow.js在浏览器中进行实时语义分割 | MixLab算法系列
  10. Python射击小游戏