[GRASSLIST:4950] Re: v.to.rast with area fills

I recently wrote a little matlab script to do just this. If you don't have matlab, the GPL'd octave or scilab should run it, or spend 5 minutes to get it working in C / bash ...

%% ga_vect2poly.m Hamish Bowman, Nov 11, 2002
%
% Convert GRASS ASCII vector files to GRASS poly files for use with r.in.poly.
%
% v.out.ascii, ga_vect2poly.m, r.in.poly
%

format long g

FileName = '~/grass5_data/milford/bathy/dig_ascii/milf_island_poly'
OutName = [FileName '.poly'];

fp1 = fopen(FileName, 'r');
fp2 = fopen(OutName, 'w');

%% get past header
for i = 1:14
         disp(fgetl(fp1))
end

n=0; % island number

while(length(ferror(fp1)) == 0) %% ie not EOF
         n = n+1;
         buff = fgetl(fp1);
         if(buff(1) == 'A')
                 numVerts = sscanf(buff, 'A %d');
                 disp(['Island ' num2str(n) ' has ' num2str(numVerts) ' verts.'])
                 island = fscanf(fp1, '%f %f\n', [2 numVerts])'; % 2 columns, else
                 disp('eh?? that''s not right:')
                 disp(buff)
         end
                 fprintf(fp2, 'A\n');
         for i = 1:length(island) % note vect ascii is northing,easting
                 fprintf(fp2, ' %.3f %.3f\n', island(i,2), island(i,1));
         end
         fprintf(fp2, '= %d\n', n);
end fclose(fp1);
fclose(fp2);