Rob Hetland's blog
Monday, March 4, 2013
Posting videos to the web.
First, let's extract some frames from a series of movies (in .mp4 format)
for file in mayjune*.mp4 ; do ffmpeg -i $file -r 1 -vframes 1 -ss 00:00:50 ${file%%.mp4}.png ; done
Friday, May 27, 2011
Add word skip in iTerm
Go to 'Manage Profiles' -> 'Keyboard' -> 'Global'
Add an item. Select right arrow and option key to add escape sequence. Put the letter 'b' in the text box (no quotes). Do the same thing for right arrow and 'f'. Done.
Add an item. Select right arrow and option key to add escape sequence. Put the letter 'b' in the text box (no quotes). Do the same thing for right arrow and 'f'. Done.
Sunday, August 29, 2010
Changing a fixed record dimension to unlimited
Sometimes, especially for concatenation, you need to change a fixed length dimension (usually time) to `UNLIMITED`.
To do this, create a netcdf file with only one (unlimited) dimension the same size and name as the dimension you want to convert.
nc = netCDF4.Dataset('unl_dim.nc', 'w', format='NETCDF3_CLASSIC')
nc.createDimension('time')
nc.dimensions['time'] = -1
nc.close()
This [python code](http://scipy.org), for example, creates an unlimited dimension with a length of one. Next, use `ncks` (one of the [netcdf operators](http://nco.sourceforge.net).) to append the old information to the new file.
ncks -A original_netcdf.nc unl_dim.nc
You will then need to move `unl_dim.nc` to the original file name.
Not the simplest hack, but pretty simple, and works.
To do this, create a netcdf file with only one (unlimited) dimension the same size and name as the dimension you want to convert.
nc = netCDF4.Dataset('unl_dim.nc', 'w', format='NETCDF3_CLASSIC')
nc.createDimension('time')
nc.dimensions['time'] = -1
nc.close()
This [python code](http://scipy.org), for example, creates an unlimited dimension with a length of one. Next, use `ncks` (one of the [netcdf operators](http://nco.sourceforge.net).) to append the old information to the new file.
ncks -A original_netcdf.nc unl_dim.nc
You will then need to move `unl_dim.nc` to the original file name.
Not the simplest hack, but pretty simple, and works.
Wednesday, July 21, 2010
Compiling netcdf4 for ROMS
ROMS likes static netCDF4 libraries. This is how to compile those:
export FC=gfortran
export F77=gfortran
export F90=gfortran
export FFLAGS='-O3'
./configure --prefix=/opt/netcdf4_static/gfortran --enable-netcdf-4 --with-hdf5=/opt/hdf5/gfortran --disable-shared --disable-dap
This configuration makes a set of static libraries that do not use opendap (otherwise, a libcurl needs to be linked to). Other programs prefer the shared libraries, so these go to the usual location /opt/netcdf4/gfortran.
export FC=gfortran
export F77=gfortran
export F90=gfortran
export FFLAGS='-O3'
./configure --prefix=/opt/netcdf4_static/gfortran --enable-netcdf-4 --with-hdf5=/opt/hdf5/gfortran --disable-shared --disable-dap
This configuration makes a set of static libraries that do not use opendap (otherwise, a libcurl needs to be linked to). Other programs prefer the shared libraries, so these go to the usual location /opt/netcdf4/gfortran.
Tuesday, July 13, 2010
Presentation fonts
I usually use Helvetica for presentations, and then include LaTeX equations using LaTeXit. The best font to use with Helvetica seems to be Arev, which has the right weight to balance Helvetica. To use this, simply put
\usepackage{arev}
in the preamble.
\usepackage{arev}
in the preamble.
Monday, July 5, 2010
Random netcdf4-python notes
Some notes on using netcdf4-python
- Use the shared netcdf4 libraries to compile. (ROMS needs static netcdf4 libraries -- so you need to build both).
- The new version returns a np.ma.MaskedArray when there are missing values.
- Using ncks (from the netCDF operators) to compress -- need to be careful about specifying netcdf4_classic format. Standard netcdf4 format does not play nice with MFDataset.
- The new netCDF4 is DAP enabled, a feature that is passed through to netcdf4-python. All you need to do is specify a DAP-URL, and you can see your data over the internet!
Subscribe to:
Posts (Atom)