这是我的首篇博客,简单记录一下
首先我想说说为什么要写这个博客呢?原因有二
其一,为了分享在自己在学习中遇到的问题以及解决方法。我在学习的过程中深知这种学习无厘头的感觉。
其次,为了锻炼自己的表达能力(从遣词造句上面提升自己的表达能力)。我知道自己的表达真的真的太烂了,一点逻辑也没有。
正文开始:
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 xshow
def 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 = phase
height = height
data = height_data_without_nan
A = np.vstack([height, np.ones(len(height))]).T # np.ones_like
# 获得最小二乘系数
a, b = np.linalg.lstsq(A, phase.T, rcond=None)[0