#!/usr/bin/perl # Generate SPLAT! config files from CSV input, place them into $dirprefix # folder (see below) and output script syntax to generate coverage maps. # # Usage: cat automatic-data.csv | automatic_CSV_to_SPLAT.pl > genscript.sh # # then executing genscript.sh will generate covarage maps into out-coverages dir. # CSV input syntax (available as automatic.sral.fi export format): # station_id;type;status;band_name;callsign;station_name;mh_locator;qth_city;altitude_asl;altitude_agl;wgs84_lat;wgs84_lon;tx_freq; # tx_antenna;tx_polarisation;tx_power;qtf;rep_access;rep_shift;remarks;# my @fields; $dirprefix = "./in-configs"; foreach $line () { chomp( $line ); $line =~ s/'//g; $line =~ s/"//g; # print "DEBUG: $line\n"; @fields = split(";", $line, 20); if(($fields[0] =~ /^\d+$/) && ($fields[10] =~ /^\d+\.\d+$/) && ($fields[11] =~ /^\d+\.\d+$/) && ($fields[8] =~ /^\d+$/)) { $fields[4] =~ s/\//-/g; # print "[DEBUG: GENERATING FILE: " . $fields[0] . "-" . $fields[4] . ".lrp]\n"; open(my $fh, '>', $dirprefix . "/" . $fields[0] . "-" . $fields[4] . ".lrp") or die; print $fh "15.000 ; Earth Dielectric Constant (Relative permittivity)\n"; print $fh "0.005 ; Earth Conductivity (Siemens per meter)\n"; print $fh "301.000 ; Atmospheric Bending Constant (N-units)\n"; print $fh $fields[12] . " ; Frequency in MHz (20 MHz to 20 GHz)\n"; print $fh "5 ; Radio Climate (5 = Continental Temperate)\n"; if($fields[14] =~ "H") { # horizontal: print $fh "0 ; Polarization (0 = Horizontal, 1 = Vertical)\n"; } else { # vertical: print $fh "1 ; Polarization (0 = Horizontal, 1 = Vertical)\n"; } print $fh "0.50 ; Fraction of situations (50% of locations)\n"; print $fh "0.50 ; Fraction of time (50% of the time)\n"; print $fh $fields[15] . " ; Effective Radiated Power (ERP) in Watts (optional)\n"; close($fh); # print "DONE.\n"; # print "[DEBUG: GENERATING FILE: " . $fields[0] . "-" . $fields[4] . ".qth]\n"; open(my $fh, '>', $dirprefix . "/" . $fields[0] . "-" . $fields[4] . ".qth") or die; print $fh $fields[0] . "-" . $fields[4] . "\n"; print $fh $fields[10] . "\n"; print $fh (360-$fields[11]); print $fh "\n"; print $fh $fields[9] . "\n"; close($fh); print "splat -t in-configs/" . $fields[0] . "-" . $fields[4] . ".qth -metric -c 10 -kml -m 1.333 -d ./sdf-files " . $fields[0] . "-" . $fields[4] . ".lrp -s cities.dat -o out-coverages/" . $fields[0] . "-" . $fields[4] . "-coverage.ppm -ngs\n"; # print "convert -transparent white out-coverages/foo out-coverages/bar"; # print "DONE.\n"; # print "id: " . $fields[0] . ", " . $fields[4] . ", " . $fields[8] . ", lat: " . $fields[10] . ", lon: " . (360-$fields[11]) . "\n"; } # foreach my $val (@fields) { # print "$val\n"; # } # print "$line\n"; }