In [3]:
%load_ext sql
In [4]:
%sql sqlite:///ingest.db
Out[4]:
In [17]:
%%bash
pwd
ls -al ~stephan/Repos/Data
In [12]:
%time chksum = generate_file_chksum('/home/stephan/Repos/Data/','_tmp_file_999',"md5")
print chksum
In [16]:
result = %sql select * from ingest_files where checksum='md5:a9dceb7c95dc715cec503ae58b184298'
#print result
(aggregation_name,filename,ingest_date,checksum) = result[0]
print filename
In [ ]:
%time !md5sum /home/stephan/Repos/Data/pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18600101-18691231.nc
In [ ]:
%time !sha256sum /home/stephan/Repos/Data/pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18600101-18691231.nc
In [ ]:
%time chksum = generate_file_chksum('/home/stephan/Repos/Data/','pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18600101-18691231.nc',"sha256")
print chksum
In [ ]:
# docu: https://code.zmaw.de/projects/cdo/embedded/index.html
from cdo import *
cdo = Cdo()
In [ ]:
In [ ]:
input1="/home/stephan/Data/pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18500101-18591231.nc"
input2="/home/stephan/Data/pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18600101-18691231.nc"
cdo.showname(input=input1)
In [ ]:
cdo.griddes(input=input1)
In [ ]:
cdo.pardes(input=input1)
#cdo.griddes(input=input1)
In [ ]:
cdo.showstdname(input=input1)
In [ ]:
cdo.showname(input=input1)
In [ ]:
cdo.sinfo(input=input1)
In [ ]:
cdo.infon(input=input1)
In [ ]:
cdo.diff(input=(input1,input2))
In [ ]:
cdo.eca_cdd(input=input1,output="/home/stephan/Data/drydays.nc")
In [ ]:
In [11]:
import hashlib, os
def generate_file_chksum(rootdir, filename, cksumtype, blocksize=2**20):
if cksumtype == "md5":
m = hashlib.md5()
elif cksumtype =="sha256":
m = hashlib.sha256()
with open( os.path.join(rootdir, filename) , "rb" ) as f:
while True:
buf = f.read(blocksize)
if not buf:
break
m.update( buf )
return m.hexdigest()
In [5]:
%%sql
CREATE TABLE ingest_files(aggregation_name, filename, date, checksum);
CREATE TABLE ingest_aggregations(origin,contact,location);
Out[5]:
In [9]:
%%sql
INSERT INTO ingest_files VALUES('CMIP5/MPI-M/day/psl/','pr_day_MPI-ESM-LR_1pctCO2_r1i1p1_18600101-18691231.nc','2012-11-02',"md5:a9dceb7c95dc715cec503ae58b184298");
INSERT INTO ingest_aggregations VALUES('CMIP5/MPI-M/day/psl/','ho@mpi-m.de','/gpfs750/transfer/CMIP5');
Out[9]: