@@ -138,8 +138,13 @@ def load_definition(name):
138
138
139
139
def load_state_file (name , states_dict ):
140
140
print ("Reading file " + name + "..." )
141
- with open (name , "r" ) as f :
142
- file_str = f .read ()
141
+ file_str = None
142
+ try :
143
+ with open (name , "r" ) as f :
144
+ file_str = f .read ()
145
+ except :
146
+ with open (name , "r" , encoding = 'cp1252' ) as f :
147
+ file_str = f .read ()
143
148
if not file_str :
144
149
return
145
150
try :
@@ -276,13 +281,15 @@ def get_colors(name):
276
281
277
282
def get_sequential_colors (space , palette = "Reds" ):
278
283
palette = sns .color_palette (palette , space )
284
+ print (palette )
279
285
for idx , item in enumerate (palette ):
280
286
palette [idx ] = [int (round (255 * x )) for x in item ]
287
+ print (palette )
281
288
return palette
282
289
283
290
def get_state_color (value , space , colors ):
284
291
for idx in range (0 , len (colors )- 1 ):
285
- if space [idx ] <= value <= space [idx + 1 ]:
292
+ if space [idx ] <= value < space [idx + 1 ]:
286
293
return colors [idx ]
287
294
return colors [0 ]
288
295
@@ -328,8 +335,8 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
328
335
space = np .quantile (data_list , steps )
329
336
colors = get_sequential_colors (len (space ), palette )
330
337
else :
331
- space = np .linspace (0 , data_list [- 1 ], num = steps , dtype = int )
332
- print ( space )
338
+ space = np .linspace (0 , data_list [- 1 ], num = data_list [ - 1 ] + 1 , dtype = int )
339
+ steps = data_list [ - 1 ] + 1
333
340
colors = get_sequential_colors (steps , palette )
334
341
if mode == 1 :
335
342
space [0 ] = 0
@@ -355,6 +362,8 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
355
362
#############################
356
363
357
364
parser = argparse .ArgumentParser (description = 'Given valid provinces.bmp, definition.csv files and a folder of state history files (or strategic region files), generate an image containing a map of states with their IDs.' )
365
+ parser .add_argument ( 'mode' ,
366
+ help = 'Mode: 1 - population per pixel, 2 - political, 3 - total factories, 4 - civ factories, 5 - mil factories, 6 - infra, 7 - nav factories' )
358
367
parser .add_argument ('provinces' ,
359
368
help = 'Path to provinces.bmp file' )
360
369
parser .add_argument ( 'definition' ,
@@ -375,9 +384,11 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
375
384
376
385
#print(sns.color_palette("Blues"))
377
386
378
- load_pdx_colors_file ("colors.txt" )
387
+ # load_pdx_colors_file("colors.txt")
379
388
380
- mode = 6
389
+ mode = int (args .mode )
390
+ if mode < 1 or mode > 7 :
391
+ sys .exit ("Wrong mode - must be between 1 and 7" )
381
392
manpower_steps = 10
382
393
factories_steps = 10
383
394
@@ -407,31 +418,31 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
407
418
colors = load_pdx_colors_file (args .colors )
408
419
elif mode == 3 :
409
420
factories_list = get_total_factories_list (states_dict )
410
- factories_steps = factories_list [- 1 ]+ 1
421
+ factories_steps = factories_list [- 1 ]
411
422
lc = generate_legend_and_colors (factories_steps , factories_list , "Total Factories in State" , mode )
412
423
colors = lc [0 ]
413
424
space = lc [1 ]
414
425
elif mode == 4 :
415
426
factories_list = get_civ_factories_list (states_dict )
416
- factories_steps = factories_list [- 1 ]+ 1
427
+ factories_steps = factories_list [- 1 ]
417
428
lc = generate_legend_and_colors (factories_steps , factories_list , "Civilian Factories in State" , mode , "Oranges" )
418
429
colors = lc [0 ]
419
430
space = lc [1 ]
420
431
elif mode == 5 :
421
432
factories_list = get_mil_factories_list (states_dict )
422
- factories_steps = factories_list [- 1 ]+ 1
433
+ factories_steps = factories_list [- 1 ]
423
434
lc = generate_legend_and_colors (factories_steps , factories_list , "Military Factories in State" , mode , "Greens" )
424
435
colors = lc [0 ]
425
436
space = lc [1 ]
426
437
elif mode == 6 :
427
438
factories_list = get_infra_list (states_dict )
428
- factories_steps = factories_list [- 1 ]+ 1
439
+ factories_steps = factories_list [- 1 ]
429
440
lc = generate_legend_and_colors (factories_steps , factories_list , "Infrastructure in State" , mode , "Oranges" )
430
441
colors = lc [0 ]
431
442
space = lc [1 ]
432
443
elif mode == 7 :
433
- factories_list = get_infra_list (states_dict )
434
- factories_steps = factories_list [- 1 ]+ 1
444
+ factories_list = get_dockyards_list (states_dict )
445
+ factories_steps = factories_list [- 1 ]
435
446
lc = generate_legend_and_colors (factories_steps , factories_list , "Dockyards in State" , mode , "Blues" )
436
447
colors = lc [0 ]
437
448
space = lc [1 ]
@@ -470,4 +481,4 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
470
481
471
482
province_map .show ()
472
483
print ("Saving file " + args .output + "..." )
473
- province_map .save (args .output , "PNG" )
484
+ province_map .save (args .output , "PNG" )
0 commit comments