brouter/brouter-map-creator/src/main/java/btools/mapcreator/RelationStatistics.java

74 lines
1.7 KiB
Java

package btools.mapcreator;
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.File;
import java.util.HashMap;
import btools.util.DenseLongMap;
import btools.util.TinyDenseLongMap;
/**
* WayCutter does 2 step in map-processing:
*
* - cut the way file into 45*30 - pieces
* - enrich ways with relation information
*
* @author ab
*/
public class RelationStatistics extends MapCreatorBase
{
public static void main(String[] args) throws Exception
{
System.out.println("*** RelationStatistics: count relation networks");
if (args.length != 1)
{
System.out.println("usage: java WayCutter <relation-file>" );
return;
}
new RelationStatistics().process( new File( args[0] ) );
}
public void process( File relationFileIn ) throws Exception
{
HashMap<String,long[]> relstats = new HashMap<String,long[]>();
DataInputStream dis = createInStream( relationFileIn );
try
{
for(;;)
{
long rid = readId( dis );
String network = dis.readUTF();
int waycount = 0;
for(;;)
{
long wid = readId( dis );
if ( wid == -1 ) break;
waycount++;
}
long[] stat = relstats.get( network );
if ( stat == null )
{
stat = new long[2];
relstats.put( network, stat );
}
stat[0]++;
stat[1] += waycount;
}
}
catch( EOFException eof )
{
dis.close();
}
for( String network : relstats.keySet() )
{
long[] stat = relstats.get( network );
System.out.println( "network: " + network + " has " + stat[0] + " relations with " + stat[1] + " ways" );
}
}
}