2022.2.2
首先,按照惯例来碎碎念一点。本来2020年暑假就开始做的课题,发病又休学又种种,结果拖到一年多才继续。为了不延期毕业,按时出国,在此记录一下课题完成的一些步骤、灵感、目标以及计划。
目前的打算是:
- 3月之前开题
- 6月之前把小文章投出去
- 9月再考一次托福顺便套磁弄申请的事情
- 10月左右正好中期报告
- 2023年3月就顺利毕业酱紫
本来说吧2.1就把开题报告写完,但是太EMO了于是谢谢乐队键盘手小姐姐自驾游让我过了10年来最开心的中国春节嗷。于是延迟了一下计划,2.14开学之前把开题报告发给老师酱紫。最近的进度都是在看文献,感觉由于这个领域还是很新,总觉得都好厉害,都没什么可以吐槽的文章哈哈哈(bushi)。今天还在研究现状头秃。
以及,想要做一个给自己用的ICESat-2卫星数据专门的预处理软件,看看拿python怎么写比较好一点。
2022.2.13
亲爱的导师给我超级认真地批改了开题报告,以至于我绞尽脑汁,好难改。
但是确实给的意见让我学习到了不少。
预计一个周的周期,周四之前把改好的开题报告交给她。
2020.2.24
开题报告的时间应该在4月中旬之后了,于是开始小论文构架。
关于ICESat-2卫星的数据处理问题,这里用到的是ATL03产品,即全球地理定位光子产品。
- 下载链接:https://nsidc.org/data/atl03,这个不是很好用
- 根据需要的时空信息筛选产品的话:https://search.earthdata.nasa.gov/search
- 然后下载得到.h5文件,可以使用PhoREAL进行处理。
- PhoREAL下载链接:https://github.com/icesat-2UT/PhoREAL
- 但是实际上这个软件主要是用来做陆地冠层高度什么之类分类的,这里要应用到海洋次表层的数据提取,可能作用就只有对于光子信息在需要范围内的裁剪,以及获得它时间对应的latitude。这样可以直接对于csv文件进行处理,无需继续用python或者r语言进行.h5文件中属性的提取。
- 根据https://github.com/icesat-2UT/PhoREAL给出的官方文档就可以看到一系列其功能和操作。
- 但是这里所用到的功能不多,就不展开了。
- 最后筛选出的2019.1.26的四个.h5文件导出csv就可以了。
然后,再用python来对这个csv进行处理,显示。
2022.2.28
谔谔,这里讲一下ATL03产品用PhoREAL导出之后的两个高度信息:HAE和MSL的区别嗷:GPS Altitude
这个网页中写的比较清楚
然后按照《ICESat-2 ATL03 数据预处理及校正方法》一文进行ICESat-2 ATL03产品的数据预处理
丢一点预处理代码(PhoREAL+光子高度归一化)
#1. import packages
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#2. import .csv generated from PhoREAL
gt1r = pd.read_csv("ATL03_20190126004930_04360212_005_01_gt1r.csv")
all_ph = gt1r
high_conf_ph = all_ph[(all_ph["Height (m MSL)"]<20)&(all_ph["Height (m MSL)"]>-30)&
(all_ph["Latitude (deg)"]>-61)&(all_ph["Latitude (deg)"]<-60.5)]
descri = high_conf_ph.describe()
#3. plot photon distribution in land surface
clip_ph = high_conf_ph
plt.style.use("seaborn-whitegrid")
plt.figure(figsize=[10,10])
plt.scatter(clip_ph["Latitude (deg)"],clip_ph["Height (m MSL)"],s=1)
plt.title('Photon ditribution on ocean',fontdict={'family' : 'Times New Roman', 'size' : 26})
plt.xlabel("Latitude (degree)",fontdict={'family' : 'Times New Roman', 'size' : 24})
plt.ylabel("Photon altitude (meter)",fontdict={'family' : 'Times New Roman', 'size' : 24})
# plt.yticks([400,500,600,700,800],fontproperties = 'Times New Roman', size = 20)
# plt.xticks([210,220,230,240,250],fontproperties = 'Times New Roman', size = 20)
plt.xlim(-61,-60.5)
plt.ylim(-25,20)
plt.savefig("ice edge area-20190126.png", dpi = 300)
#4. Normalization
normalized_ph = pd.DataFrame(columns=clip_ph.columns)
begin_t = round(descri["Time (sec)"]["min"], 3) - 0.001
end_t = round(descri["Time (sec)"]["max"], 3)
row = int((end_t-begin_t)/0.001)
for i in range(0, row):
verti_ph = high_conf_ph[(high_conf_ph["Time (sec)"]>=begin_t+i*0.001) &
(high_conf_ph["Time (sec)"]<=begin_t+i*0.001+0.001)]
descri_v = verti_ph.describe()
high_h = round(descri_v["Height (m MSL)"]["max"],2)+0.01
high_l = round(descri_v["Height (m MSL)"]["min"],2)
if np.isnan(high_h) or np.isnan(high_l):
continue
col =int((high_h - high_l)/0.15)+1
DTM = np.zeros(col)
for j in range(0, col):
DTM[j] = verti_ph[(verti_ph["Height (m MSL)"]<high_h-j*0.15) &
(verti_ph["Height (m MSL)"]>high_h-j*0.15-0.15)].shape[0]
loc = DTM.argmax()
hmax = high_h - 0.15*loc
verti_ph["Height"] = verti_ph["Height (m MSL)"]-hmax
normalized_ph = normalized_ph.append(verti_ph)
2022.3.23
心态崩了属于是,上海疫情,被封在学校里。之前本来打算用ICESat-2 ATL03去做南极磷虾的,后来发现还是没有可行性。现在改变方向,用遥感数据,Argo数据以及机器学习的模型去做南极磷虾场的预测。
那么现在就开始学习Argo
BGC Argo的文献:https://www.frontiersin.org/articles/10.3389/fmars.2019.00502
The community has recommended for BGC-Argo to measure six additional properties in addition to pressure, temperature and salinity measured by Argo, to include oxygen, pH, nitrate, downwelling light, chlorophyll fluorescence and the optical backscattering coefficient.
- 但是目前还是不管那么多,因为4月要把开题弄了,所以这周要完成开题报告和ppt发给老师并且修改,然后尽量在下周把开题报告完成。