探地雷达python库:io、处理与可视化
siina的Python项目详细描述
siina
说明
用于探地雷达(GPR)数据处理的Python库:IO、过滤器和可视化。
使用Python3.6进行测试。
安装
siina
可以与pip
一起安装
pip install siina
最新的Github版本
克隆repo并使用setup.py
git clone https://github.com/ahartikainen/siina
cd siina
python setup.py install
或者用pip
python -m pip install git+https://github.com/ahartikainen/siina
基础数据结构
标题信息保存为字典:obj.header
测量数据保存为nDarrays的列表:obj.data_list
可以使用.data
方法访问主通道
示例用法
import siina
# create RadarFile object
meas = siina.Radar()
# read in the data
meas.read_file("./example_path/example_file.DZT")
# set the center frequency for GPR (in Hertz) if not done
if meas.header.get('frequency', None) is None:
meas.header['frequency'] = 1e9 # 1 GHz
# print dimensions for the data
print("points in samples={}, samples={}, channels={}".format(meas.nrows, meas.ncols, meas.nchan)
# strip markers (important step with .DZT files)
meas.read_markers()
# center each sample (for each trace do func(trace[500:])
meas.func_dc(start=500)
# apply lowpass filter with cutoff= 6 * frequency
# if cutoff is float -> cutoff = cutoff
# if cutoff is str -> cutoff = float(cutoff) * frequency
meas.func_filter(cutoff='6')
import matplotlib.pyplot as plt
# plot mean function for the first channel
# all channels are found under obj.data_list
plt.plot(meas.data.mean(1))
plt.show()
# plot radargram with plt.imshow
# be careful with the profile size (meas.ncols < 5000)
plt.imshow(meas.data, aspect='auto')
plt.show()
开发
pip install -r requirements-test.txt
black siina
pylint siina
pydocstyle --convention=numpy siina