#!/usr/bin/perl use warnings; use strict; my $z0 = 0; my $z1 = 0; my $z2 = 0; my $z3 = 0; my $z4 = 0; my $my_osm_id = ''; my $my_noise_fact = ''; my $my_river_fact = ''; my $my_forest_fact = ''; # create a hash table with noise value my %data = ('000000' => 0); my @keys = keys %data; my $size = @keys; # print "1 - Hash size: is $size\n"; my $filename2 = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\my_noise.log'; # my $filename2 = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\my_noise_test.log'; # load noise values open(FJ, '<', $filename2) or die $!; while(){ if (/osm_id \|\s*(\d+) \|/) { $my_osm_id = $1; { if (/noise_factor \| (\d+) \| ende/) { $my_noise_fact = $1; $data{$my_osm_id} = $my_noise_fact; } } } } close (FJ); @keys = keys %data; $size = @keys; print STDERR "hash table noise loaded- Hash size: is $size\n"; # create a hash table with river value my %data2 = ('000000' => 0); @keys = keys %data2; my $size2 = @keys; # print "1 - Hash size: is $size2\n"; my $filename3 = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\my_river.log'; # load river values open(FJ, '<', $filename3) or die $!; while(){ if (/osm_id \|\s*(\d+) \|/) { $my_osm_id = $1; { if (/river_factor \| (\d+) \| ende/) { $my_river_fact = $1; $data2{$my_osm_id} = $my_river_fact; } } } } close (FJ); @keys = keys %data2; $size2 = @keys; print STDERR "hash table river loaded Hash size: is $size2\n"; # create a hash table with forest value my %data3 = ('000000' => 0); @keys = keys %data3; my $size3 = @keys; # print "1 - Hash size: is $size3\n"; my $filename4 = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\my_forest.log'; # load forest values open(FJ, '<', $filename4) or die $!; while(){ # print STDERR "read my_forest.log $_\n"; if (/osm_id \|\s*(\d+) \|/) { $my_osm_id = $1; { if (/forest_factor \| (\d+) \| ende/) { $my_forest_fact = $1; $data3{$my_osm_id} = $my_forest_fact; # print STDERR "load hash table forest with $my_osm_id AND $my_forest_fact\n"; } } } } close (FJ); @keys = keys %data3; $size3 = @keys; print STDERR "hash table forest loaded Hash size: is $size3\n"; # process the osm file / add a tag to the "highway" for noise .... # my $filename = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\planet_7.63_49.178_3c305aff.osm'; my $filename = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\germany-latest.osm'; # my $filename = 'C:\Daten\Bild-2022\NOISE_ENTW\mapcreation\test.osm'; my $noiseFactor = ''; my $riverFactor = ''; my $forestFactor = ''; my $o_id = ''; open(FH, '<', $filename) or die $!; while(){ print $_; if (/\ # print " dadada ..........\n\r"; print " \"; print "\n\r"; $z2 = $z2 +1; } # river_class exist for o_id ? if( exists($data2{$o_id})) { $riverFactor = $data2{$o_id}; # add tag... # # print " dadada ..........\n\r"; print " \"; print "\n\r"; $z3 = $z3 +1; } # forest_class exist for o_id ? if( exists($data3{$o_id})) { $forestFactor = $data3{$o_id}; # add tag... # # print " dadada ..........\n\r"; print " \"; print "\n\r"; $z4 = $z4 +1; } # reset o_id ... $o_id = ''; } } close(FH); print STDERR " stats ....rows in osm=$z0 ...highway=$z1 ...inserted estimated_noise_class=$z2 ...inserted estimated_river_class=$z3 ...inserted estimated_forest_class=$z4\n";