functiongeoid=geoid_load_file(filename)%GEOID_LOAD_FILE Loads geoid data from filenamegeoid.file=filename;geoid.offset=NaN;geoid.scale=NaN;fid=fopen(geoid.file,'r');iffid==-1,error(['Cannot open ',geoid.file]),endfori=1:16ifisfinite(geoid.offset)&&isfinite(geoid.scale),break,endtext=fgetl(fid);if~ischar(text),continue,endtext=strsplit(text,' ');iflength(text)==3ifstrcmp(text{2},'Offset')geoid.offset=str2double(text{3});elseifstrcmp(text{2},'Scale')geoid.scale=str2double(text{3});endelseiflength(text)==2breakendendfclose(fid);if~isfinite(geoid.offset),error('Cannot find offset'),endif~isfinite(geoid.scale),error('Cannot find scale'),endgeoid.im=imread(geoid.file);if~isa(geoid.im,'uint16'),error('Wrong image type'),endgeoid.h=size(geoid.im,1);geoid.w=size(geoid.im,2);if~(bitand(geoid.w,1)==0&&bitand(geoid.h,1)==1)error('Image width/height not even/odd')endend