Skip to content

Instantly share code, notes, and snippets.

View seumasmorrison's full-sized avatar

James Morrison seumasmorrison

View GitHub Profile
@seumasmorrison
seumasmorrison / polyline_to_polygon.py
Last active August 29, 2015 14:09
Script for taking polyline shapefile to a Polygon shapefile using shapely 1.4.4 - https://pypi.python.org/pypi/Shapely ( Windows binary - http://www.lfd.uci.edu/~gohlke/pythonlibs/#shapely ) and fiona 1.4.8 - https://pypi.python.org/pypi/Fiona. Useful for Ordnance Survey coastline data, the polylines to polygons function in QGIS 2.6 used an olde…
from shapely.geometry import mapping
from shapely.ops import polygonize
import fiona
def polyline_to_polygon(input_file, output_file):
polylines = fiona.open(input_file)
geom = [x['geometry'] for x in polylines]
coords = [x['coordinates']for x in geom[:-1]]
schema = {'geometry': 'Polygon','properties': {'id': 'int'}}
with fiona.open(output_file, 'w', 'ESRI Shapefile', schema) as c:
@seumasmorrison
seumasmorrison / make_raw_files.py
Created October 30, 2014 14:53
Function for creating raw files from a hebtools displacements DataFrame and creating custom raw files form it.
import pandas as pd
import datetime
import os
def make_raw_files(path_to_raw_df, output_folder):
raw_df = pd.read_pickle(path_to_raw_df)
os.chdir(output_folder)
timestamp = datetime.datetime(2013,2,1,0,17,59)
half_hour_delta = datetime.timedelta(0,1800)
final_timestamp = datetime.datetime(2013,2,28,23,48)
@seumasmorrison
seumasmorrison / month_his_to_df.py
Created October 30, 2014 10:17
Takes the path to an Datawell Waverider MKIII HIS(Historical Spectra) file and returns a DateTimeIndexed Dataframe with the option of resampling to 30 minutes.
import pandas as pd
from datetime import datetime
def month_his_to_df(his_file_path, resample=True):
his_columns = ['date_time', 'Tp', 'dirp', 'sprp', 'Tz', 'Hm0', 'TI', 'T1',
'Tc', 'Tdw2', 'Tdw1', 'Tpc', 'nu','eps','QP','Ss','TRef',
'TSea','Bat']
month_dataframe = pd.io.parsers.read_csv(his_file_path, names = his_columns)
date_time_array = []
for date_time_string in month_dataframe['date_time'].values:
@seumasmorrison
seumasmorrison / plot_spectra.py
Created October 21, 2014 15:13
Script for plotting buoy spectra from Datawell Waverider buoy. Pass an absolute file path to plot_spectra function and it will create png files with polar plots for buoy spectra file.
# -*- coding: utf-8 -*-
"""
Created on Tue Oct 21 15:49:56 2014
@author: le12jm
"""
import os
import numpy as np
import matplotlib.cm as cm
@seumasmorrison
seumasmorrison / 0_reuse_code.js
Last active August 29, 2015 14:07
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console
function output_spectra = datawell_raw_to_diwasp(file_path, output_dir, visible)
% read the raw file data into a matrix stripping signal quality info
try
raw_matrix = csvread(file_path);
catch err
disp('Problem with RAW file')
output_spectra = 0;
return
end
raw_matrix = raw_matrix/100;
@seumasmorrison
seumasmorrison / datawell_raw_to_wafo.m
Last active August 29, 2015 14:07
Plotting a spectra using WAFO Matlab toolbox from a Datawell Waverider MKIII raw displacements file. The raw file should have a significant wave height (Hm0) of 4.63 metres, a peak period of 14.29 seconds and a mean direction of 260.2 degrees (WSW) calculated by Datawell's own W@ves21. Using the default parameters WAFO gives good values for Hm0 …
% An example file for importing datawell raw displacements into wafo
% ( http://www.maths.lth.se/matstat/wafo/ )
function [S,mean_wave_dir_deg_peak_freq, Hm0, Tp] = datawell_raw_to_wafo(file_path)
%displacements=csvread(file_path);
displacements=dlmread(file_path);
heave=displacements(:,2)/100;
north=-1*displacements(:,3)/100;
west=displacements(:,4)/100;
%length of the time series
@seumasmorrison
seumasmorrison / plot_battery.py
Last active August 29, 2015 14:06
Plotting Battery Status from Datawell waverider spt files using pandas
import os
import matplotlib.pyplot as plt
import pandas as pd
fig = plt.figure(figsize=(20,10), dpi=100)
from datetime import datetime
os.chdir('/path/to/buoy_name/year/')
date_index = []
battery_status = []
months = os.listdir('.')
@seumasmorrison
seumasmorrison / awac_dat_dataframe.ipynb
Created September 12, 2014 11:48
Nortek AWAC dat file to pandas DataFrame
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@seumasmorrison
seumasmorrison / AWAC_Carloway.ipynb
Last active August 29, 2015 14:06
Outputs from a vertical deployment of an AWAC of Carloway Pier
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.