import netCDF4 as nc
import pandas as pd
import numpy as np
file = '.\sst\HadISST_sst.nc\HadISST_sst.nc'
dataset = nc.Dataset(file)
print(dataset.variables.keys())
time = dataset.variables['time'][:]
latitude = dataset.variables['latitude'][:]
longitude = dataset.variables['longitude'][:]
sst = dataset.variables['sst'][:]
sst[sst==-1000]=np.nan
region='AP'
lon1=-75
lon2=-45
lat1=-69
lat2=-59
lon=[lon1,lon2]
lat=[lat2,lat1]
lon_index=[]
lat_index=[]
for target in lon:
lon_index.append(np.argmin(np.abs(longitude - target)))
for target in lat:
lat_index.append(np.argmin(np.abs(latitude - target)))
sst_t=np.nanmean(np.nanmean(sst[:,lat_index[0]:lat_index[1],lon_index[0]:lon_index[1]],axis=2),axis=1)
date=pd.date_range('18700101','20210701',freq='1M')
sst_table={
'date':date,'sst':sst_t}
sst_table=pd.DataFrame(sst_table)
sst_table=sst_table.set_index('date')
sst_table.resample('Y').mean().to_excel(region+'_sst_annual.xlsx')
sst_table["1870-3":].resample('3M').mean().to_excel(region+'_sst_seasonal.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[2::4,0].to_excel(region+'_sst_Southern hemisphere spring.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[1::4,0].to_excel(region+'_sst_Southern hemisphere winter.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[0::4,0].to_excel(region+'_sst_Southern hemisphere autumn.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[3::4,0].to_excel(region+'_sst_Southern hemisphere summer.xlsx')
region='RS'
lon1=-180
lon2=-170
lon3=155
lon4=180
lat1=-80
lat2=-65
lon=[lon1,lon2,lon3,lon4]
lat=[lat2,lat1]
lon_index=[]
lat_index=[]
for target in lon:
lon_index.append(np.argmin(np.abs(longitude - target)))
for target in lat:
lat_index.append(np.argmin(np.abs(latitude - target)))
lon_index_range=list(range(lon_index[0],lon_index[1]))+list(range(lon_index[2],lon_index[3]+1))
sst_t=np.nanmean(np.nanmean(sst[:,lat_index[0]:lat_index[1],lon_index_range],axis=2),axis=1)
date=pd.date_range('18700101','20210701',freq='1M')
sst_table={
'date':date,'sst':sst_t}
sst_table=pd.DataFrame(sst_table)
sst_table=sst_table.set_index('date')
sst_table.resample('Y').mean().to_excel(region+'_sst_annual.xlsx')
sst_table["1870-3":].resample('3M').mean().to_excel(region+'_sst_seasonal.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[2::4,0].to_excel(region+'_sst_Southern hemisphere spring.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[1::4,0].to_excel(region+'_sst_Southern hemisphere winter.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[0::4,0].to_excel(region+'_sst_Southern hemisphere autumn.xlsx')
sst_table["1870-3":].resample('3M').mean().iloc[3::4,0].to_excel(region+'_sst_Southern hemisphere summer.xlsx')