Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. import os
  2. import sys
  3. import json
  4.  
  5.  
  6. def get_output_file_name(path):
  7. current_file_name = path.split('/')[-1]
  8. return '%s.json' % current_file_name.split('.')[0]
  9.  
  10. file = sys.argv[1]
  11. file_name = get_output_file_name(file)
  12.  
  13. indent = int(sys.argv[2]) if len(sys.argv) >= 3 else None
  14.  
  15. if len(sys.argv) == 3:
  16. country_osm_id = sys.argv[2]
  17. else:
  18. country_osm_id = None
  19.  
  20. with open(file) as data_file:
  21. data = json.load(data_file)
  22.  
  23. features = data.get('features')
  24.  
  25. new_features = []
  26.  
  27. for feature in features:
  28. properties = feature.get('properties')
  29.  
  30. name = properties.get('name')
  31. osm_id = properties.get('id')
  32. admin_level = properties.get('admin_level')
  33.  
  34. try:
  35. is_in_country = int(properties.get('is_in_country', country_osm_id))
  36. except:
  37. is_in_country = properties.get('is_in_country', country_osm_id)
  38.  
  39. try:
  40. parent_id = int(properties.get('parent_id'))
  41. except:
  42. parent_id = properties.get('parent_id')
  43.  
  44. geometry = feature.get('geometry')
  45.  
  46. new_feature = {
  47. 'type': 'Feature',
  48. 'properties': {
  49. 'osm_id': osm_id,
  50. 'admin_level': admin_level,
  51. 'is_in_country': is_in_country,
  52. 'name': name,
  53. 'name_en': name,
  54. 'parent_id': parent_id,
  55. 'is_simplified': True
  56. },
  57. 'geometry': geometry
  58. }
  59. new_features.append(new_feature)
  60.  
  61. data['features'] = new_features
  62.  
  63. output_directory = './output'
  64.  
  65. if not os.path.exists(output_directory):
  66. os.mkdir(output_directory);
  67.  
  68. file = open('%s/%s' % (output_directory, file_name), 'w')
  69.  
  70. if indent:
  71. data_json = json.dumps(data, indent=2)
  72. else:
  73. data_json = json.dumps(data)
  74.  
  75. file.write(data_json)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement