forked from xiaoxuzhao/FSRS_old
/
plot_eMOLT_FSRS.py
70 lines (69 loc) · 2.02 KB
/
plot_eMOLT_FSRS.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# -*- coding: utf-8 -*-
"""
Created on Wed Feb 14 12:45:00 2018
plot eMolt and FSRS
@author: xiaoxu
"""
import pandas as pd
from mpl_toolkits.basemap import Basemap
import numpy as np
import matplotlib.pyplot as plt
def dm2dd(lat,lon):
"""
convert lat, lon from decimal degrees,minutes to decimal degrees
"""
(a,b)=divmod(float(lat),100.)
aa=int(a)
bb=float(b)
lat_value=aa+bb/60.
if float(lon)<0:
(c,d)=divmod(abs(float(lon)),100.)
cc=int(c)
dd=float(d)
lon_value=cc+(dd/60.)
lon_value=-lon_value
else:
(c,d)=divmod(float(lon),100.)
cc=int(c)
dd=float(d)
lon_value=cc+(dd/60.)
return lat_value, -lon_value
################
#HARDCODES
input_dir='/home/zdong/xiaoxu/FSRS/all_files/'
save_dir='/home/zdong/xiaoxu/FSRS/figure/'
po=[-75,39,-58,49]
################
case=''#'_MAB'
df=pd.read_csv(input_dir+'sqldump_sites'+case+'.dat',index_col=2,delim_whitespace=True)
dfh=pd.read_csv(input_dir+'fsrs_sites(>1 km,year).csv')
fig = plt.figure()
a=fig.add_subplot(1,1,1)
# emolt site
Lon,Lat=[],[]
for k in range(len(df)):
if int(df['MAXD'][k][-4:])-int(df['MIND'][k][-4:])>0:
la=df['LAT_DDMM'][k]
lo=df['LON_DDMM'][k]
[la,lo]=dm2dd(la,lo)
Lon.append(lo)
Lat.append(la)
my_map = Basemap(projection='merc',
resolution = 'h', area_thresh = 0.3,
llcrnrlon=po[0], llcrnrlat=po[1],
urcrnrlon=po[2], urcrnrlat=po[3])
my_map.drawcoastlines()
my_map.drawcountries()
my_map.fillcontinents(color = 'gray')
my_map.drawmapboundary()
x,y=my_map(Lon,Lat)
my_map.plot(x, y, 'ro', markersize=4)
x,y=my_map(dfh['Longitude'].values,dfh['Latitude'].values)
my_map.plot(x, y, 'go', markersize=4)
label=["eMOLT","FSRS"]
a.legend(label,loc="lower right")
a.set_title('eMOLT sites(>1 year) and FSRS sites(>1 year)',fontsize=15)
my_map.drawparallels(np.arange(30,80,3),labels=[1,0,0,0])
my_map.drawmeridians(np.arange(-180,180,3),labels=[1,1,0,1])
plt.savefig(save_dir+"plot eMolt sites(>1 year) and fsrs sites(>1 year).png")
plt.show()