associate_occupation_DATINI_idluogo.py 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. #DATINI occupazioni, associa gli ID gerarchici ai luoghi
  2. import csv
  3. import codecs
  4. import pandas as pd
  5. import re
  6. import os
  7. import io
  8. import tokenize
  9. output = open('association_occupation_DATINI_luoghi.csv', 'w')
  10. csvwriter = csv.writer(output)
  11. params = ['recordid', 'occupation_1', 'place_occupation_1_PROVINCIA', 'ID_provincia_1', 'place_occupation_1_COMUNE', 'ID_comune_1', 'place occupation 1 MICROTOPONIMO', 'ID_micro_1', 'place occupation 1 ENTE', 'ID_ente_1', 'occupation_2', 'place_occupation_2_PROVINCIA', 'ID_provincia_2', 'place_occupation_2_COMUNE', 'ID_comune_2', 'place occupation 2 MICROTOPONIMO', 'ID_micro_2', 'place occupation 2 ENTE', 'ID_ente_2']
  12. csvwriter.writerow(params)
  13. def get_ID_ente (provincia, comune, ente):
  14. link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv')
  15. reader = csv.DictReader(link_file)
  16. for row in reader:
  17. ass_provincia = row['EVENTO_PROVINCIA'].lower()
  18. ass_comune = row['EVENTO_COMUNE'].lower()
  19. ass_edificio = row['EVENTO edificio'].lower()
  20. ass_parrocchia = row['EVENTO PARROCCHIA'].lower()
  21. ass_micromicro = row['EVENTO micro microtoponimo'].lower()
  22. if ente != "" and " ":
  23. if ente == ass_micromicro and comune == ass_comune and provincia == ass_provincia:
  24. if row['ID_micromicrotoponimo'] != "" and " ":
  25. return (row['ID_micromicrotoponimo'])
  26. else:
  27. return ""
  28. elif ente == ass_parrocchia and comune == ass_comune and provincia == ass_provincia:
  29. if row['ID_parrocchia'] != "" and " ":
  30. return (row['ID_parrocchia'])
  31. else:
  32. return ""
  33. elif ente == ass_edificio and comune == ass_comune and provincia == ass_provincia:
  34. if row['ID_edificio'] != "" and " ":
  35. return (row['ID_edificio'])
  36. else:
  37. return ""
  38. def get_ID_micro (provincia, comune, micro):
  39. link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv')
  40. reader = csv.DictReader(link_file)
  41. for row in reader:
  42. ass_provincia = row['EVENTO_PROVINCIA'].lower()
  43. ass_comune = row['EVENTO_COMUNE'].lower()
  44. ass_micro = row['EVENTO MICROTOPONIMO'].lower()
  45. if micro != "" and " ":
  46. if micro == ass_micro and comune == ass_comune and provincia == ass_provincia:
  47. if row['ID_RESTORE_microtoponimo'] != "" and " ":
  48. return (row['ID_RESTORE_microtoponimo'])
  49. else:
  50. return ""
  51. def get_ID_comune (provincia, comune):
  52. link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv')
  53. reader = csv.DictReader(link_file)
  54. for row in reader:
  55. ass_provincia = row['EVENTO_PROVINCIA'].lower()
  56. ass_comune = row['EVENTO_COMUNE'].lower()
  57. if comune != "" and " ":
  58. if comune == ass_comune and provincia == ass_provincia:
  59. if row['ID_RESTORE_comune'] != "" and " ":
  60. return (row['ID_RESTORE_comune'])
  61. else:
  62. return ""
  63. def get_ID_provincia (provincia):
  64. link_file = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/luoghi_ASPO_tutti_ID_manually_cleaned.csv')
  65. reader = csv.DictReader(link_file)
  66. for row in reader:
  67. ass_provincia = row['EVENTO_PROVINCIA'].lower()
  68. if provincia != "" and " ":
  69. if provincia == ass_provincia:
  70. if row['ID_PROVINCIA'] != "" and " ":
  71. return (row['ID_PROVINCIA'])
  72. else:
  73. return ""
  74. csv_occupation = open('/Users/leonardocanova/Library/CloudStorage/OneDrive-UniversityofPisa(1)/Documenti/Progetti università/OVI/Programmazione/ASPO/Luoghi/Tabella di lavoro sui dati - DATINI - onomastica - persone singole.csv')
  75. reader = csv.DictReader(csv_occupation)
  76. for row in reader:
  77. line = []
  78. recordid = row['recordId']
  79. occupation_1 = row['occupation_1']
  80. occupation_2 = row['occupation_2']
  81. place_occupation_1_PROVINCIA = row['place_occupation_ 1 PROVINCIA'].lower()
  82. place_occupation_1_COMUNE = row['place_occupation_ 1 COMUNE'].lower()
  83. place_occupation_1_MICROTOPONIMO = row['place_occupation_ 1 MICROTOPONIMO'].lower()
  84. place_occupation_1_ENTE = row['place_occupation_ 1 ENTE'].lower()
  85. place_occupation_2_PROVINCIA = row['place_occupation_ 2 PROVINCIA'].lower()
  86. place_occupation_2_COMUNE = row['place_occupation_ 2 COMUNE'].lower()
  87. place_occupation_2_MICROTOPONIMO = row['place_occupation_ 2 MICROTOPONIMO'].lower()
  88. place_occupation_2_ENTE = row['place_occupation_ 2 ENTE'].lower()
  89. ID_provincia_1 = get_ID_provincia (place_occupation_1_PROVINCIA)
  90. ID_comune_1 = get_ID_comune (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE)
  91. ID_micro_1 = get_ID_micro (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE, place_occupation_1_MICROTOPONIMO)
  92. ID_ente_1 = get_ID_ente (place_occupation_1_PROVINCIA, place_occupation_1_COMUNE, place_occupation_1_ENTE)
  93. ID_provincia_2 = get_ID_provincia (place_occupation_2_PROVINCIA)
  94. ID_comune_2 = get_ID_comune (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE)
  95. ID_micro_2 = get_ID_micro (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE, place_occupation_2_MICROTOPONIMO)
  96. ID_ente_2 = get_ID_ente (place_occupation_2_PROVINCIA, place_occupation_2_COMUNE, place_occupation_2_ENTE)
  97. line.append (recordid)
  98. line.append (occupation_1)
  99. line.append (place_occupation_1_PROVINCIA)
  100. line.append (ID_provincia_1)
  101. line.append (place_occupation_1_COMUNE)
  102. line.append (ID_comune_1)
  103. line.append (place_occupation_1_MICROTOPONIMO)
  104. line.append (ID_micro_1)
  105. line.append (place_occupation_1_ENTE)
  106. line.append (ID_ente_1)
  107. line.append (occupation_2)
  108. line.append (place_occupation_2_PROVINCIA)
  109. line.append (ID_provincia_2)
  110. line.append (place_occupation_2_COMUNE)
  111. line.append (ID_comune_2)
  112. line.append (place_occupation_2_MICROTOPONIMO)
  113. line.append (ID_micro_2)
  114. line.append (place_occupation_2_ENTE)
  115. line.append (ID_ente_2)
  116. csvwriter.writerow(line)
  117. #print (line)
  118. output.close()