terrapop_models 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +34 -0
  5. data/app/assets/javascripts/terrapop_models/application.js +13 -0
  6. data/app/assets/stylesheets/terrapop_models/application.css +15 -0
  7. data/app/controllers/terrapop_models/application_controller.rb +4 -0
  8. data/app/helpers/terrapop_models/application_helper.rb +4 -0
  9. data/app/models/api_log.rb +2 -0
  10. data/app/models/area_data_raster.rb +126 -0
  11. data/app/models/area_data_raster_variable_mnemonic_lookup.rb +4 -0
  12. data/app/models/area_data_statistic.rb +6 -0
  13. data/app/models/area_data_table.rb +25 -0
  14. data/app/models/area_data_table_group.rb +8 -0
  15. data/app/models/area_data_table_group_membership.rb +7 -0
  16. data/app/models/area_data_value.rb +37 -0
  17. data/app/models/area_data_variable.rb +140 -0
  18. data/app/models/area_data_variable_construction.rb +6 -0
  19. data/app/models/attached_variable_pointer.rb +5 -0
  20. data/app/models/bare_user.rb +7 -0
  21. data/app/models/boundary.rb +6 -0
  22. data/app/models/build_status.rb +2 -0
  23. data/app/models/category.rb +17 -0
  24. data/app/models/codebook.rb +242 -0
  25. data/app/models/common_variable.rb +2 -0
  26. data/app/models/country.rb +45 -0
  27. data/app/models/country_comparability.rb +6 -0
  28. data/app/models/country_level.rb +8 -0
  29. data/app/models/ddi2_codebook.rb +541 -0
  30. data/app/models/error_event.rb +2 -0
  31. data/app/models/extract_data_artifact.rb +4 -0
  32. data/app/models/extract_request.rb +817 -0
  33. data/app/models/extract_request_area_data_raster_variable_mnemonic_lookup.rb +4 -0
  34. data/app/models/extract_request_error_event.rb +4 -0
  35. data/app/models/extract_request_submission.rb +19 -0
  36. data/app/models/extract_status.rb +55 -0
  37. data/app/models/extract_type.rb +2 -0
  38. data/app/models/extract_variable_stub.rb +17 -0
  39. data/app/models/frequency.rb +7 -0
  40. data/app/models/geog_instance.rb +18 -0
  41. data/app/models/geog_unit.rb +5 -0
  42. data/app/models/global_region.rb +6 -0
  43. data/app/models/global_region_type.rb +5 -0
  44. data/app/models/heartbeat.rb +8 -0
  45. data/app/models/heartbeat_pulse.rb +3 -0
  46. data/app/models/insert_html_fragment.rb +3 -0
  47. data/app/models/ipums_academic_status.rb +9 -0
  48. data/app/models/ipums_anticipated_result.rb +9 -0
  49. data/app/models/ipums_department.rb +9 -0
  50. data/app/models/ipums_registration.rb +72 -0
  51. data/app/models/ipums_user.rb +15 -0
  52. data/app/models/label.rb +7 -0
  53. data/app/models/link.rb +21 -0
  54. data/app/models/map.rb +255 -0
  55. data/app/models/map_unit.rb +4 -0
  56. data/app/models/map_unit_raster_dataset.rb +4 -0
  57. data/app/models/markup_transform.rb +240 -0
  58. data/app/models/measurement_type.rb +5 -0
  59. data/app/models/nhgis/agg_data_var.rb +120 -0
  60. data/app/models/nhgis/breakdown_combo.rb +84 -0
  61. data/app/models/nhgis/breakdown_var.rb +8 -0
  62. data/app/models/nhgis/data_file.rb +43 -0
  63. data/app/models/nhgis/data_file_type.rb +17 -0
  64. data/app/models/nhgis/data_group.rb +125 -0
  65. data/app/models/nhgis/data_record_range.rb +22 -0
  66. data/app/models/nhgis/data_table.rb +8 -0
  67. data/app/models/nhgis/dataset.rb +76 -0
  68. data/app/models/nhgis/dataset_group.rb +6 -0
  69. data/app/models/nhgis/geog_level.rb +14 -0
  70. data/app/models/nhgis/geog_level_collection.rb +15 -0
  71. data/app/models/nhgis/geog_level_geog_level_group.rb +10 -0
  72. data/app/models/nhgis/geog_level_group.rb +87 -0
  73. data/app/models/nhgis/geog_name.rb +12 -0
  74. data/app/models/nhgis/geog_unit.rb +11 -0
  75. data/app/models/nhgis/geog_var 2.rb +10 -0
  76. data/app/models/nhgis/geog_var.rb +6 -0
  77. data/app/models/nhgis/geog_var_geog_level.rb +8 -0
  78. data/app/models/nhgis/geotime.rb +21 -0
  79. data/app/models/nhgis/integ_geog_instance.rb +6 -0
  80. data/app/models/nhgis/integ_geog_instance_source_geog_instance.rb +9 -0
  81. data/app/models/nhgis/integ_geog_level.rb +9 -0
  82. data/app/models/nhgis/integ_geog_name.rb +12 -0
  83. data/app/models/nhgis/shape_file.rb +203 -0
  84. data/app/models/nhgis/shape_file_x_dataset.rb +8 -0
  85. data/app/models/nhgis/tabulation_type.rb +8 -0
  86. data/app/models/nhgis/time_instance.rb +6 -0
  87. data/app/models/nhgis/time_instance_integ_geog_level.rb +9 -0
  88. data/app/models/nhgis/time_series.rb +12 -0
  89. data/app/models/nhgis/time_series_component.rb +9 -0
  90. data/app/models/nhgis/time_series_release.rb +6 -0
  91. data/app/models/nhgis/time_series_table.rb +13 -0
  92. data/app/models/nhgis/time_series_table_dataset.rb +9 -0
  93. data/app/models/nhgis/time_series_table_geog_level.rb +9 -0
  94. data/app/models/nhgis/time_series_table_time_instance.rb +9 -0
  95. data/app/models/nhgis/time_series_table_time_series_release.rb +7 -0
  96. data/app/models/nhgis/time_series_table_topic.rb +9 -0
  97. data/app/models/nhgis/time_series_table_x_time_series.rb +9 -0
  98. data/app/models/nhgis_metadata_store.rb +2 -0
  99. data/app/models/raster.rb +5 -0
  100. data/app/models/raster_category.rb +6 -0
  101. data/app/models/raster_category_statistic.rb +7 -0
  102. data/app/models/raster_data_type.rb +6 -0
  103. data/app/models/raster_dataset.rb +130 -0
  104. data/app/models/raster_dataset_group.rb +3 -0
  105. data/app/models/raster_dataset_raster_data_type.rb +4 -0
  106. data/app/models/raster_dataset_raster_dataset_unit.rb +4 -0
  107. data/app/models/raster_dataset_raster_variable.rb +4 -0
  108. data/app/models/raster_dataset_unit.rb +4 -0
  109. data/app/models/raster_group.rb +87 -0
  110. data/app/models/raster_metadata.rb +6 -0
  111. data/app/models/raster_operation.rb +10 -0
  112. data/app/models/raster_raster_variable.rb +2 -0
  113. data/app/models/raster_statistic.rb +6 -0
  114. data/app/models/raster_value.rb +83 -0
  115. data/app/models/raster_variable.rb +440 -0
  116. data/app/models/raster_variable_classification.rb +4 -0
  117. data/app/models/raster_variable_group_membership.rb +4 -0
  118. data/app/models/request_area_data_variable.rb +57 -0
  119. data/app/models/request_geog_unit.rb +6 -0
  120. data/app/models/request_raster_dataset.rb +4 -0
  121. data/app/models/request_raster_variable.rb +147 -0
  122. data/app/models/request_sample.rb +34 -0
  123. data/app/models/request_sample_geog_level.rb +4 -0
  124. data/app/models/request_terrapop_sample.rb +6 -0
  125. data/app/models/request_variable.rb +104 -0
  126. data/app/models/resolution.rb +5 -0
  127. data/app/models/sample.rb +81 -0
  128. data/app/models/sample_design.rb +300 -0
  129. data/app/models/sample_detail_field.rb +7 -0
  130. data/app/models/sample_detail_group.rb +3 -0
  131. data/app/models/sample_detail_value.rb +11 -0
  132. data/app/models/sample_details.rb +90 -0
  133. data/app/models/sample_geog_level.rb +150 -0
  134. data/app/models/sample_level_area_data_variable.rb +13 -0
  135. data/app/models/sample_variable.rb +11 -0
  136. data/app/models/status_definition.rb +2 -0
  137. data/app/models/system_statistic.rb +5 -0
  138. data/app/models/tag.rb +7 -0
  139. data/app/models/terrapop_configuration.rb +75 -0
  140. data/app/models/terrapop_extract_information.rb +64 -0
  141. data/app/models/terrapop_raster_summary_cache.rb +6 -0
  142. data/app/models/terrapop_sample.rb +313 -0
  143. data/app/models/terrapop_setting.rb +11 -0
  144. data/app/models/topic.rb +7 -0
  145. data/app/models/ui_text_snippet.rb +2 -0
  146. data/app/models/universe.rb +5 -0
  147. data/app/models/user.rb +262 -0
  148. data/app/models/user_role.rb +5 -0
  149. data/app/models/variable.rb +127 -0
  150. data/app/models/variable_availability_cach.rb +3 -0
  151. data/app/models/variable_group.rb +14 -0
  152. data/app/models/variable_source.rb +8 -0
  153. data/app/views/layouts/terrapop_models/application.html.erb +14 -0
  154. data/config/routes.rb +2 -0
  155. data/db/migrate/00000000000100_create_countries.rb +15 -0
  156. data/db/migrate/00000000000200_create_universes.rb +11 -0
  157. data/db/migrate/00000000000300_create_geog_units.rb +9 -0
  158. data/db/migrate/00000000000400_create_measurement_types.rb +9 -0
  159. data/db/migrate/00000000000500_create_area_data_table_groups.rb +13 -0
  160. data/db/migrate/00000000000600_create_area_data_tables.rb +14 -0
  161. data/db/migrate/00000000000700_create_area_data_table_group_memberships.rb +12 -0
  162. data/db/migrate/00000000000800_create_tags.rb +9 -0
  163. data/db/migrate/00000000000900_create_topics.rb +9 -0
  164. data/db/migrate/00000000001000_create_variable_groups.rb +18 -0
  165. data/db/migrate/00000000001100_create_samples.rb +32 -0
  166. data/db/migrate/00000000001200_create_terrapop_samples.rb +12 -0
  167. data/db/migrate/00000000001300_create_variables.rb +52 -0
  168. data/db/migrate/00000000001400_create_country_levels.rb +17 -0
  169. data/db/migrate/00000000001450_variable_topics.rb +19 -0
  170. data/db/migrate/00000000001500_create_sample_geog_levels.rb +20 -0
  171. data/db/migrate/00000000002000_create_area_data_variables.rb +19 -0
  172. data/db/migrate/00000000002050_area_data_variable_topics.rb +22 -0
  173. data/db/migrate/00000000002100_create_sample_level_area_data_variables.rb +16 -0
  174. data/db/migrate/00000000002200_create_sample_level_area_variable_constructions.rb +12 -0
  175. data/db/migrate/00000000003000_create_maps.rb +22 -0
  176. data/db/migrate/00000000003100_create_boundaries.rb +14 -0
  177. data/db/migrate/00000000004000_create_geog_instances.rb +20 -0
  178. data/db/migrate/00000000004100_create_area_data_values.rb +18 -0
  179. data/db/migrate/00000000005000_create_sample_variables.rb +21 -0
  180. data/db/migrate/00000000005100_create_categories.rb +20 -0
  181. data/db/migrate/00000000005200_create_frequencies.rb +16 -0
  182. data/db/migrate/00000000005300_create_variable_sources.rb +16 -0
  183. data/db/migrate/00000000006000_create_user_roles.rb +8 -0
  184. data/db/migrate/00000000006100_create_users.rb +43 -0
  185. data/db/migrate/00000000006300_create_samples_tags.rb +15 -0
  186. data/db/migrate/00000000006400_create_terrapop_samples_tags.rb +15 -0
  187. data/db/migrate/00000000007000_create_raster_data_types.rb +9 -0
  188. data/db/migrate/00000000007050_create_resolutions.rb +8 -0
  189. data/db/migrate/00000000007100_create_raster_datasets.rb +26 -0
  190. data/db/migrate/00000000007200_create_raster_groups.rb +20 -0
  191. data/db/migrate/00000000007250_create_raster_groups_tags.rb +19 -0
  192. data/db/migrate/00000000007300_create_raster_variables.rb +28 -0
  193. data/db/migrate/00000000007325_create_raster_variable_group_memberships.rb +12 -0
  194. data/db/migrate/00000000007350_raster_variable_topics.rb +22 -0
  195. data/db/migrate/00000000007400_create_rasters.rb +22 -0
  196. data/db/migrate/00000000007500_create_raster_operations.rb +11 -0
  197. data/db/migrate/00000000010000_create_status_definitions.rb +8 -0
  198. data/db/migrate/00000000010050_create_extract_types.rb +10 -0
  199. data/db/migrate/00000000010100_create_build_statuses.rb +10 -0
  200. data/db/migrate/00000000010200_create_extract_requests.rb +14 -0
  201. data/db/migrate/00000000010300_create_extract_requests_labels_join_table.rb +20 -0
  202. data/db/migrate/00000000010400_create_extract_statuses.rb +13 -0
  203. data/db/migrate/00000000010500_create_request_geog_units.rb +13 -0
  204. data/db/migrate/00000000010600_create_request_terrapop_samples.rb +15 -0
  205. data/db/migrate/00000000011000_create_request_variable.rb +16 -0
  206. data/db/migrate/00000000011100_create_request_area_data_variables.rb +18 -0
  207. data/db/migrate/00000000011200_create_request_raster_variables.rb +20 -0
  208. data/db/migrate/00000000012000_create_raster_summary_functions.rb +130 -0
  209. data/db/migrate/00000000013000_create_terrapop_settings.rb +24 -0
  210. data/db/migrate/20121218190647_create_attached_variable_pointer.rb +18 -0
  211. data/db/migrate/20121218191609_add_attached_variable_pointer_id.rb +9 -0
  212. data/db/migrate/20121218205322_add_wants_attached.rb +9 -0
  213. data/db/migrate/20121219145142_add_attributes_to_terrapop_sample.rb +68 -0
  214. data/db/migrate/20130125155216_add_default_order_index_to_variables.rb +5 -0
  215. data/db/migrate/20130129204515_create_request_samples.rb +14 -0
  216. data/db/migrate/20130129204718_create_request_raster_datasets.rb +13 -0
  217. data/db/migrate/20130205195304_create_error_events.rb +10 -0
  218. data/db/migrate/20130206202006_add_country_index_for_continent.rb +8 -0
  219. data/db/migrate/20130207202628_create_raster_metadata.rb +13 -0
  220. data/db/migrate/20130208192415_add_extents_to_raster_dataset.rb +6 -0
  221. data/db/migrate/20130209182800_create_global_regions.rb +11 -0
  222. data/db/migrate/20130209182858_add_global_region_id_country.rb +13 -0
  223. data/db/migrate/20130211183221_add_type_to_global_regions.rb +5 -0
  224. data/db/migrate/20130212190940_create_global_region_types.rb +8 -0
  225. data/db/migrate/20130212192357_remove_classification_add_global_region_type_id_to_global_region.rb +13 -0
  226. data/db/migrate/20130304181054_add_code_to_boundaries.rb +5 -0
  227. data/db/migrate/20130305223407_add_ipumsi_user_flagto_users.rb +15 -0
  228. data/db/migrate/20130305224906_add_ipumsi_user_date_flagto_users.rb +11 -0
  229. data/db/migrate/20130308214537_create_request_sample_geog_levels.rb +14 -0
  230. data/db/migrate/20130312191726_create_raster_statistics.rb +23 -0
  231. data/db/migrate/20130312192100_create_raster_categories.rb +14 -0
  232. data/db/migrate/20130312192158_create_raster_category_statistics.rb +22 -0
  233. data/db/migrate/20130312203045_create_area_data_statistics.rb +15 -0
  234. data/db/migrate/20130401161222_add_summary_to_raster_variable.rb +11 -0
  235. data/db/migrate/20130402203508_add_global_region_sort_order_column.rb +8 -0
  236. data/db/migrate/20130402211553_add_weighted_to_terrapop_samples.rb +5 -0
  237. data/db/migrate/20130408022218_add_period_to_raster_datasets.rb +5 -0
  238. data/db/migrate/20130409161950_create_area_data_variable_constructions.rb +17 -0
  239. data/db/migrate/20130409162731_add_opcode_to_raster_operations.rb +5 -0
  240. data/db/migrate/20130412141109_update_raster_summary_functions.rb +39 -0
  241. data/db/migrate/20130415174823_create_insert_html_fragments.rb +13 -0
  242. data/db/migrate/20130415185523_create_common_variables.rb +13 -0
  243. data/db/migrate/20130416144840_add_columns_to_request_samples.rb +6 -0
  244. data/db/migrate/20130416150151_add_revision_of_column_to_extract_request.rb +8 -0
  245. data/db/migrate/20130416151200_add_file_type_to_extract_request.rb +5 -0
  246. data/db/migrate/20130416161440_add_column_general_detailed_selection_to_request_variables.rb +5 -0
  247. data/db/migrate/20130416170551_add_wants_case_selection_to_request_variable.rb +5 -0
  248. data/db/migrate/20130613185642_add_indexes_to_tables.rb +7 -0
  249. data/db/migrate/20130614193857_add_more_column_indexes.rb +11 -0
  250. data/db/migrate/20130618141508_create_raster_dataset_raster_data_types.rb +17 -0
  251. data/db/migrate/20130618185528_add_circa_to_raster_dataset.rb +5 -0
  252. data/db/migrate/20130619160555_create_raster_dataset_units.rb +9 -0
  253. data/db/migrate/20130619161934_create_raster_dataset_raster_dataset_units.rb +17 -0
  254. data/db/migrate/20130621184015_add_raster_dataset_process_summary.rb +8 -0
  255. data/db/migrate/20130621203809_add_source_information_column_to_raster_dataset.rb +5 -0
  256. data/db/migrate/20130624144333_add_temporal_extent_description_to_raster_dataset.rb +5 -0
  257. data/db/migrate/20130624154952_add_provider_to_raster_dataset.rb +5 -0
  258. data/db/migrate/20130624175342_add_use_constraints_column_to_raster_dataset.rb +5 -0
  259. data/db/migrate/20130624175632_drop_use_constraints_column_from_raster_dataset.rb +8 -0
  260. data/db/migrate/20130624192654_add_north_south_east_west_columns_to_raster_dataset.rb +8 -0
  261. data/db/migrate/20130625193303_add_sort_operation_identifier_to_raster_group.rb +5 -0
  262. data/db/migrate/20130702190659_add_raster_group_id_to_raster_variable.rb +9 -0
  263. data/db/migrate/20130708184410_create_country_comparabilities.rb +14 -0
  264. data/db/migrate/20130711191704_add_ipumsi_user_id_to_user.rb +8 -0
  265. data/db/migrate/20130712150252_add_data_settings_column_to_user.rb +8 -0
  266. data/db/migrate/20130719183620_add_visible_and_map_to_columns_to_raster_operations.rb +13 -0
  267. data/db/migrate/20130812194537_create_extract_request_submissions.rb +12 -0
  268. data/db/migrate/20130813165221_remove_ipums_user_id_from_user.rb +8 -0
  269. data/db/migrate/20130814161802_add_uuid_field_to_extract_request.rb +6 -0
  270. data/db/migrate/20130816204002_add_country_id_to_terrapop_sample.rb +8 -0
  271. data/db/migrate/20130816204214_add_year_to_terrapop_sample.rb +8 -0
  272. data/db/migrate/20130816205324_add_indexes_to_country.rb +9 -0
  273. data/db/migrate/20130819145802_add_foreign_key_to_terrapop_sample.rb +5 -0
  274. data/db/migrate/20130819155712_add_indexes_to_sample_level_area_data_variable.rb +5 -0
  275. data/db/migrate/20130819163013_add_short_country_name_to_terrapop_sample.rb +8 -0
  276. data/db/migrate/20130820195420_add_is_erf_to_country.rb +7 -0
  277. data/db/migrate/20130821221743_fix_raster_summary_function_num_classes.rb +39 -0
  278. data/db/migrate/20130830192340_add_more_user_registration_columns.rb +51 -0
  279. data/db/migrate/20130904205306_add_raster_variable_sort_order_weight.rb +8 -0
  280. data/db/migrate/20130912145522_add_localized_label_to_country_levels.rb +5 -0
  281. data/db/migrate/20130913194351_create_terrapop_raster_summary_caches.rb +27 -0
  282. data/db/migrate/20130916212710_add_year_range_to_map.rb +11 -0
  283. data/db/migrate/20130917154553_create_sample_designs.rb +14 -0
  284. data/db/migrate/20130924210303_add_raster_only_to_extract_request.rb +5 -0
  285. data/db/migrate/20131001220437_add_mnemonic_and_codebook_description_to_area_data_value.rb +11 -0
  286. data/db/migrate/20131002213443_add_ipums_email_sent_at_column.rb +8 -0
  287. data/db/migrate/20131020154130_remove_index_if_exists.rb +9 -0
  288. data/db/migrate/20131020170642_remove_ui_snippet_table_if_exists.rb +8 -0
  289. data/db/migrate/20131021204227_create_ui_text_snippet.rb +11 -0
  290. data/db/migrate/20131022190227_rename_table_fix_ui_text_snippets.rb +9 -0
  291. data/db/migrate/20131119154817_add_unique_index_on_uuid_on.rb +9 -0
  292. data/db/migrate/20131202161911_add_send_toi_rods_flag_to_extract_request.rb +13 -0
  293. data/db/migrate/20140122150020_add_geographic_levelto_geog_instance.rb +11 -0
  294. data/db/migrate/20140124184809_add_zip_file_location.rb +8 -0
  295. data/db/migrate/20140205205539_add_api_related_fields_to_user.rb +5 -0
  296. data/db/migrate/20140206213258_create_extract_request_error_events.rb +14 -0
  297. data/db/migrate/20140206222630_add_requesting_url_to_extract_request.rb +5 -0
  298. data/db/migrate/20140207153005_create_api_logs.rb +14 -0
  299. data/db/migrate/20140228182300_change_user_institutional_affiliation_to_bool.rb +50 -0
  300. data/db/migrate/20140312143201_add_start_and_end_time_and_total_time_to_extract_request.rb +7 -0
  301. data/db/migrate/20140318212913_remove_add_index_to_area_data_value.rb +12 -0
  302. data/db/migrate/20140319155819_add_long_mnemonic_to_area_data_value.rb +7 -0
  303. data/db/migrate/20140319200718_drop_mnemonic_column_area_data_value.rb +10 -0
  304. data/db/migrate/20140320184210_add_show_in_ui_column_in_raster_variable.rb +8 -0
  305. data/db/migrate/20140328150435_rename_revision_of_column_to_rabl_usable_column_name.rb +8 -0
  306. data/db/migrate/20140331142153_add_revision_of_column.rb +8 -0
  307. data/db/migrate/20140402181324_add_new_raster_summary_functions.rb +191 -0
  308. data/db/migrate/20140403185242_add_raster_variable_area_reference_id.rb +12 -0
  309. data/db/migrate/20140410145305_add_raster_area_column_to_terrapop_raster_summary_cache.rb +6 -0
  310. data/db/migrate/20140414170802_add_new_raster_summarization.rb +85 -0
  311. data/db/migrate/20140421150330_add_second_reference_column_to_raster_variable.rb +9 -0
  312. data/db/migrate/20140506165634_add_deactivated_at_and_deleted_at_to_user.rb +6 -0
  313. data/db/migrate/20140507142843_add_column_to_frequencies.rb +5 -0
  314. data/db/migrate/20140513143055_add_sample_geog_level_id_to_request_models.rb +11 -0
  315. data/db/migrate/20140521160554_create_links.rb +9 -0
  316. data/db/migrate/20140522214508_add_ipumsi_salt_and_ipumsi_crypted_password_to_user.rb +13 -0
  317. data/db/migrate/20140604192953_add_name_to_terrapop_setting.rb +47 -0
  318. data/db/migrate/20140609163907_create_variable_availability_caches.rb +9 -0
  319. data/db/migrate/20140609210447_add_foreign_index_to_variable_availability_cache.rb +8 -0
  320. data/db/migrate/20140609213300_create_area_data_variable_availability_caches.rb +13 -0
  321. data/db/migrate/20140610135849_create_nhgis_metadata_stores.rb +30 -0
  322. data/db/migrate/20140610211138_add_dataset_id_to_nhgis_metadata.rb +5 -0
  323. data/db/migrate/20140611181543_add_replicate_weight_variable_id_to_variables.rb +5 -0
  324. data/db/migrate/20140618200741_add_key_column_toraster_variable_group_memberships.rb +7 -0
  325. data/db/migrate/20140618202053_add_key_column_toraster_variable_group_memberships2.rb +8 -0
  326. data/db/migrate/20140701134952_create_system_statistics.rb +12 -0
  327. data/db/migrate/20140804161242_add_fields_to_terrapop_sample.rb +7 -0
  328. data/db/migrate/20140806173750_add_geometry_column_to_boundaries.rb +5 -0
  329. data/db/migrate/20140821205836_add_git_hash_field_to_extract_request.rb +5 -0
  330. data/db/migrate/20140822140106_create_map_units.rb +9 -0
  331. data/db/migrate/20140822140358_create_map_unit_raster_datasets.rb +17 -0
  332. data/db/migrate/20140822143517_redefine_short_unit_on_map_unit_to_longer_string.rb +5 -0
  333. data/db/migrate/20140825135403_add_finger_print_hash_to_maps.rb +5 -0
  334. data/db/migrate/20140826163359_add_source_field_to_terrapop_sample.rb +8 -0
  335. data/db/migrate/20140827153014_add_microdata_file_size_to_sample.rb +5 -0
  336. data/db/migrate/20140828161647_add_raster_band_index_to_raster_categories.rb +5 -0
  337. data/db/migrate/20140828162650_add_post_gis_raster_output_indicator_to_raster_variable.rb +5 -0
  338. data/db/migrate/20140829150251_create_raster_dataset_raster_variables.rb +17 -0
  339. data/db/migrate/20140902194529_add_raster_band_to_raster_dataset_model.rb +7 -0
  340. data/db/migrate/20140903202609_create_heartbeats.rb +9 -0
  341. data/db/migrate/20140903204113_create_heartbeat_pulse.rb +10 -0
  342. data/db/migrate/20140904164247_create_raster_raster_variables.rb +16 -0
  343. data/db/migrate/20140908193007_add_area_level_rasterization_functions.rb +103 -0
  344. data/db/migrate/20140908194021_create_area_data_rasters.rb +39 -0
  345. data/db/migrate/20140909143933_rename_valid_column_on_area_data_raster.rb +5 -0
  346. data/db/migrate/20140911201639_add_columns_to_area_data_raster.rb +11 -0
  347. data/db/migrate/20140911211923_alter_area_data_raster_indexes.rb +12 -0
  348. data/db/migrate/20140919144305_create_raster_variable_classifications.rb +29 -0
  349. data/db/migrate/20140925140810_add_other_raster_variables_to_raster_variable_classification.rb +9 -0
  350. data/db/migrate/20140925172245_add_grouping_indicator_to_raster_classifications.rb +5 -0
  351. data/db/migrate/20140925175157_add_classification_indicator_to_raster_variable.rb +5 -0
  352. data/db/migrate/20140930142006_remove_boundary_id_from_geog_instance.rb +6 -0
  353. data/db/migrate/20141003164150_add_terrapop_sample_id_to_map_and_geog_instance.rb +11 -0
  354. data/db/migrate/20141029202813_add_nhgis_dat_file_to_sample_geog_level.rb +5 -0
  355. data/db/migrate/20141029204521_add_columns_to_sample_level_area_data_variable.rb +6 -0
  356. data/db/migrate/20141104212652_create_categorical_raster_summarization.rb +39 -0
  357. data/db/migrate/20141105202744_add_margin_file_to_sample_geog_level.rb +5 -0
  358. data/db/migrate/20141105205347_add_margin_field_to_area_data_value.rb +5 -0
  359. data/db/migrate/20141105205607_add_join_fields_to_sample_geog_level.rb +8 -0
  360. data/db/migrate/20141202180411_add_new_categorical_summarization_function.rb +62 -0
  361. data/db/migrate/20141212172044_add_continuous_raster_summarization0.rb +51 -0
  362. data/db/migrate/20141212195611_add_indexes_to_boundaries.rb +10 -0
  363. data/db/migrate/20141212202521_add_indexes_to_frequencies.rb +7 -0
  364. data/db/migrate/20141229150743_add_special_value_to_area_data_value.rb +5 -0
  365. data/db/migrate/20141230153550_add_field_to_global_regions.rb +8 -0
  366. data/db/migrate/20150107142518_add_restriction_indicated_to_sample.rb +5 -0
  367. data/db/migrate/20150114161817_add_raster_to_tiff_function.rb +35 -0
  368. data/db/migrate/20150115204303_add_hide_nhgis_datasets_to_users.rb +11 -0
  369. data/db/migrate/20150126192918_add_new_gli_post_gis_functions.rb +99 -0
  370. data/db/migrate/20150126223419_add_short_label_to_terrapop_samples.rb +11 -0
  371. data/db/migrate/20150127172953_add_another_raster_summarization_function.rb +44 -0
  372. data/db/migrate/20150130163215_new_glc_summarization_function.rb +40 -0
  373. data/db/migrate/20150211221354_create_cache_items.rb +23 -0
  374. data/db/migrate/20150212223011_add_microdata_access_expired_date_to_users.rb +11 -0
  375. data/db/migrate/20150217221940_add_new_band_aware_categorical_to_binary_summarization.rb +177 -0
  376. data/db/migrate/20150302145459_removeuse_postgis_procedure_for_geotiff.rb +5 -0
  377. data/db/migrate/20150313194752_add_color_map_to_tiff_output.rb +34 -0
  378. data/db/migrate/20150313202158_add_color_map_to_jpeg_output.rb +34 -0
  379. data/db/migrate/20150318183314_add_non_color_map_cookie_cutter_functions.rb +65 -0
  380. data/db/migrate/20150324160629_add_categorical_multi_band_summarization.rb +62 -0
  381. data/db/migrate/20150324161827_add_index_to_rasters_raster_variable_id.rb +5 -0
  382. data/db/migrate/20150327203257_add_band_to_terrapop_raster_summary_cache.rb +5 -0
  383. data/db/migrate/20150331142232_add_xml_field_to_map.rb +5 -0
  384. data/db/migrate/20150331153703_add_new_continous_summarization.rb +38 -0
  385. data/db/migrate/20150409153145_categorical_to_binary_as_raster.rb +49 -0
  386. data/db/migrate/20150413204130_generic_categorical_to_binary_raster_output_function.rb +92 -0
  387. data/db/migrate/20150416133743_ratio_area_level_data_to_raster_function.rb +55 -0
  388. data/db/migrate/20150416143838_projection_function_for_single_band_rasters.rb +27 -0
  389. data/db/migrate/20150419203614_add_raster_dataset_to_terrapop_raster_summary_cache.rb +12 -0
  390. data/db/migrate/20150419232521_add_raster_dataset_to_request_raster_variable.rb +9 -0
  391. data/db/migrate/20150427163939_create_single_binary_from_categorical_to_tiff_function.rb +51 -0
  392. data/db/migrate/20150518200435_add_new_binary_cookie_cutter_functions.rb +95 -0
  393. data/db/migrate/20150520195145_revised_glc_binary_summarization_function.rb +64 -0
  394. data/db/migrate/20150526205918_new_categorical_to_binary_summarization.rb +72 -0
  395. data/db/migrate/20150527144243_even_newer_glc_binary_function.rb +79 -0
  396. data/db/migrate/20150527191853_add_even_newer_glc_category_to_binary_function.rb +74 -0
  397. data/db/migrate/20150528141915_yancat_to_bin_summarization_function.rb +66 -0
  398. data/db/migrate/20150529182542_add_indexes_to_geog_instances.rb +9 -0
  399. data/db/migrate/20150601160855_drop_area_data_variable_availability_caches.rb +5 -0
  400. data/db/migrate/20150625150152_add_geog_instance_f_key_on_boundaries.rb +5 -0
  401. data/db/migrate/20150626144305_geog_instance_geog_code_wider.rb +6 -0
  402. data/db/migrate/20150709161201_glc_summarization_version5.rb +79 -0
  403. data/db/migrate/20150713165442_glc_summarization_version6.rb +82 -0
  404. data/db/migrate/20150713185652_tp_jpeg_raster_clip_color_map_v2.rb +34 -0
  405. data/db/migrate/20150716182438_new_rasters_table.rb +18 -0
  406. data/db/migrate/20150716184828_new_stored_procedures_for_new_rasters.rb +70 -0
  407. data/db/migrate/20150721161943_remove_ownership_statement_from_function.rb +69 -0
  408. data/db/migrate/20150727134942_rename_rasters_new_to_new_rasters.rb +19 -0
  409. data/db/migrate/20150727135614_update_table_name_in_make_jpeg2.rb +70 -0
  410. data/db/migrate/20150727143159_jpeg_clip_experiment.rb +36 -0
  411. data/db/migrate/20150727145556_create_new_tiff_raster_clip_with_buffer.rb +34 -0
  412. data/db/migrate/20150727161508_update_table_name_in_make_jpeg2_part_deux.rb +77 -0
  413. data/db/migrate/20150727193403_drop_rasters_new.rb +5 -0
  414. data/db/migrate/20150728184718_make_jpeg2_part_deux.rb +70 -0
  415. data/db/migrate/20150728214344_correct_new_rasters_table_in_new_make_jpeg2_function.rb +79 -0
  416. data/db/migrate/20150729144526_even_more_correct_new_rasters_table_in_new_make_jpeg2_function.rb +78 -0
  417. data/db/migrate/20150729160936_fixingterrapop_reclassify_categorical_raster_to_binary_summariz_v3.rb +68 -0
  418. data/db/migrate/20150730141036_adjust_jpeg_clip_for_categorical.rb +67 -0
  419. data/db/migrate/20150730153216_ststandardize_terrapop_reclassify_categorical_raster_to_binary_summariz_v3.rb +69 -0
  420. data/db/migrate/20150730163446_add_origin_to_extract_requests.rb +5 -0
  421. data/db/migrate/20150731151304_consistent_return_fieldsterrapop_gli_yield_areal_summarization.rb +99 -0
  422. data/db/migrate/20150731192327_add_boundary_only_field_to_terrapop_sample.rb +5 -0
  423. data/db/migrate/20150803213048_add_function_to_detect_boundaries_that_wrap_globe.rb +50 -0
  424. data/db/migrate/20150814154127_add_processing_flag_to_extract_request.rb +5 -0
  425. data/db/migrate/20150814165605_add_colormapped_categorical_to_binary_jpeg_cookie_cutteringizing_function.rb +49 -0
  426. data/db/migrate/20150814183708_around_the_world_wrap_a_raster_function.rb +157 -0
  427. data/db/migrate/20150910194333_add_extract_grouping_field_to_extract_request.rb +5 -0
  428. data/db/migrate/20150915194808_drop_sessions_table.rb +5 -0
  429. data/db/migrate/20150915215426_add_sessions_table.rb +12 -0
  430. data/db/migrate/20151009203606_create_sample_detail_groups.rb +8 -0
  431. data/db/migrate/20151009203855_create_sample_detail_fields.rb +13 -0
  432. data/db/migrate/20151009204052_create_sample_detail_values.rb +12 -0
  433. data/db/migrate/20151016152953_add_indexes_to_area_data_values.rb +7 -0
  434. data/db/migrate/20151023160555_add_data_to_extract_requests.rb +8 -0
  435. data/db/migrate/20151026155953_rename_description_add_title_to_extract_requests.rb +8 -0
  436. data/db/migrate/20151029144017_create_raster_dataset_groups.rb +9 -0
  437. data/db/migrate/20151029144147_add_raster_dataset_group_to_raster_dataset.rb +9 -0
  438. data/db/migrate/20151029182802_add_mnemonic_to_raster_dataset_group.rb +5 -0
  439. data/db/migrate/20151029184642_change_field_type_on_raster_dataset_group.rb +5 -0
  440. data/db/migrate/20151029210539_remove_unnecessary_fields_from_terrapop_sample.rb +60 -0
  441. data/db/migrate/20151102205254_create_data_artifacts.rb +17 -0
  442. data/db/migrate/20151102211601_add_json_field_to_extract_data_artifacts.rb +8 -0
  443. data/db/migrate/20151103152754_add_file_name_field_to_extract_request.rb +5 -0
  444. data/db/migrate/20151106155249_add_submitted_at_to_extract_request.rb +5 -0
  445. data/db/migrate/20151110204826_add_terra_pop_build_number_to_extract_request.rb +12 -0
  446. data/db/migrate/20151119213428_create_area_data_raster_variable_mnemonic_lookups.rb +18 -0
  447. data/db/migrate/20151120140757_create_extract_request_area_data_raster_variable_mnemonic_lookups.rb +16 -0
  448. data/db/migrate/20151130212011_add_new_raster_summarization_v7.rb +90 -0
  449. data/lib/tasks/terrapop_models_tasks.rake +4 -0
  450. data/lib/terrapop_models.rb +4 -0
  451. data/lib/terrapop_models/engine.rb +13 -0
  452. data/lib/terrapop_models/version.rb +3 -0
  453. data/test/dummy/README.rdoc +28 -0
  454. data/test/dummy/Rakefile +6 -0
  455. data/test/dummy/app/assets/javascripts/application.js +13 -0
  456. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  457. data/test/dummy/app/controllers/application_controller.rb +5 -0
  458. data/test/dummy/app/helpers/application_helper.rb +2 -0
  459. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  460. data/test/dummy/bin/bundle +3 -0
  461. data/test/dummy/bin/rails +4 -0
  462. data/test/dummy/bin/rake +4 -0
  463. data/test/dummy/config.ru +4 -0
  464. data/test/dummy/config/application.rb +23 -0
  465. data/test/dummy/config/boot.rb +5 -0
  466. data/test/dummy/config/database.yml +68 -0
  467. data/test/dummy/config/environment.rb +5 -0
  468. data/test/dummy/config/environments/development.rb +37 -0
  469. data/test/dummy/config/environments/production.rb +78 -0
  470. data/test/dummy/config/environments/test.rb +39 -0
  471. data/test/dummy/config/initializers/assets.rb +8 -0
  472. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  473. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  474. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  475. data/test/dummy/config/initializers/inflections.rb +16 -0
  476. data/test/dummy/config/initializers/mime_types.rb +4 -0
  477. data/test/dummy/config/initializers/session_store.rb +3 -0
  478. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  479. data/test/dummy/config/locales/en.yml +23 -0
  480. data/test/dummy/config/routes.rb +4 -0
  481. data/test/dummy/config/secrets.yml +22 -0
  482. data/test/dummy/log/development.log +62 -0
  483. data/test/dummy/public/404.html +67 -0
  484. data/test/dummy/public/422.html +67 -0
  485. data/test/dummy/public/500.html +66 -0
  486. data/test/dummy/public/favicon.ico +0 -0
  487. data/test/integration/navigation_test.rb +10 -0
  488. data/test/terrapop_models_test.rb +7 -0
  489. data/test/test_helper.rb +19 -0
  490. metadata +597 -0
@@ -0,0 +1,7 @@
1
+ class AddRasterBandToRasterDatasetModel < ActiveRecord::Migration
2
+ def change
3
+ add_column :raster_datasets, :raster_band_index, :bigint, default: -1, null: false
4
+ remove_column :raster_categories, :raster_band_index
5
+ add_index :raster_datasets, :raster_band_index
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ class CreateHeartbeats < ActiveRecord::Migration
2
+ def change
3
+ create_table :heartbeats do |t|
4
+ t.column :uuid, :string, limit: 36, null: false
5
+ t.timestamps
6
+ end
7
+ add_index :heartbeats, :uuid
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class CreateHeartbeatPulse < ActiveRecord::Migration
2
+ def change
3
+ create_table :heartbeat_pulses do |t|
4
+ t.column :heartbeat_id, :bigint
5
+ t.timestamps
6
+ end
7
+ foreign_key :heartbeat_pulses, :heartbeat_id
8
+ add_index :heartbeat_pulses, :heartbeat_id
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ class CreateRasterRasterVariables < ActiveRecord::Migration
2
+ def change
3
+ create_table :raster_raster_variables do |t|
4
+ t.column :raster_id, :bigint, null: false
5
+ t.column :raster_variable_id, :bigint, null: false
6
+ t.timestamps
7
+ end
8
+
9
+ add_index :raster_raster_variables, :raster_id
10
+ add_index :raster_raster_variables, :raster_variable_id
11
+
12
+ foreign_key :raster_raster_variables, :raster_id
13
+ foreign_key :raster_raster_variables, :raster_variable_id
14
+
15
+ end
16
+ end
@@ -0,0 +1,103 @@
1
+ class AddAreaLevelRasterizationFunctions < ActiveRecord::Migration
2
+ def change
3
+
4
+ cell_count_sql = <<-SQL_O_MATIC
5
+ CREATE OR REPLACE Function terrapop_raster_cellcount(sample_geog_lvl_id bigint, reference_raster_variable_id bigint, raster_sizer bigint)
6
+ Returns boolean as
7
+ $BODY$
8
+ DECLARE
9
+ zero_count_geom integer;
10
+ BEGIN
11
+ WITH new_rast as
12
+ (
13
+ SELECT ST_Rescale(ST_Asraster(mybound.geom, my_rast.rast, '32BF', 1.0, -5), my_rast.scale_x/raster_sizer,
14
+ my_rast.scale_y/raster_sizer) as rast
15
+ FROM (
16
+ select ST_Collect(bound.geog::geometry) as geom
17
+ from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
18
+ inner join boundaries bound on bound.geog_instance_id = gi.id
19
+ where gi.sample_geog_level_id = sample_geog_lvl_id
20
+ ) mybound,
21
+ (
22
+ select ST_Scalex(r.rast) as scale_x, ST_Scaley(r.rast) as scale_y, r.rast
23
+ from rasters r INNER JOIN raster_variables rv ON rv.id = r.raster_variable_id
24
+ WHERE rv.id = reference_raster_variable_id
25
+ limit 1
26
+ ) my_rast
27
+ )
28
+ SELECT count(zero_geog.cell_count) into zero_count_geom
29
+ FROM (
30
+ select gi.id, gi.label,(ST_summarystats(ST_Clip(r.rast, bound.geog::geometry, True),True)).count as cell_count
31
+ from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
32
+ inner join boundaries bound on bound.geog_instance_id = gi.id
33
+ inner join new_rast r on ST_Intersects(r.rast,bound.geog::geometry)
34
+ where gi.sample_geog_level_id = sample_geog_lvl_id and (ST_summarystats(ST_Clip(r.rast, bound.geog::geometry, True),True)).count = 0
35
+ order by gi.id
36
+ ) zero_geog;
37
+
38
+ IF zero_count_geom > 0 THEN
39
+ RETURN True;
40
+ ELSE
41
+ RETURN FALSE;
42
+ END IF;
43
+ END;
44
+ $BODY$
45
+ LANGUAGE plpgsql;
46
+ SQL_O_MATIC
47
+
48
+ rasterization_sql = <<-SQL_O_MATIC
49
+ CREATE OR REPLACE Function terrapop_areal_rasterization(sample_geog_lvl_id bigint, rasters_id bigint, area_data_variables_id bigint, raster_sizer bigint, bnd_num integer)
50
+ RETURNS TABLE (rast raster)
51
+ AS
52
+ $BODY$
53
+ BEGIN
54
+ RETURN QUERY
55
+ WITH new_rast as
56
+ (
57
+ SELECT ST_Rescale(ST_Asraster(mybound.geom, my_rast.rast, '32BF', 1.0, -5), my_rast.scale_x/raster_sizer,
58
+ my_rast.scale_y/raster_sizer) as rast
59
+ FROM (
60
+ select ST_Collect(bound.geog::geometry) as geom
61
+ from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
62
+ inner join boundaries bound on bound.geog_instance_id = gi.id
63
+ where gi.sample_geog_level_id = sample_geog_lvl_id
64
+ ) mybound,
65
+ (
66
+ select ST_Scalex(r.rast) as scale_x, ST_Scaley(r.rast) as scale_y, r.rast
67
+ from rasters r
68
+ where r.raster_variable_id = rasters_id
69
+ limit 1
70
+ ) my_rast
71
+ )
72
+
73
+ SELECT ST_Union(ST_AsRaster(clip.geom, new_rast.rast, '32BF', (areal_data.value/clip.cell_count))) as rast
74
+ FROM new_rast,
75
+ (
76
+ select gi.id, adv.mnemonic, area_data.value
77
+ from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
78
+ inner join boundaries bound on bound.geog_instance_id = gi.id
79
+ left join area_data_values area_data on gi.id = area_data.geog_instance_id
80
+ inner join area_data_variables adv ON area_data.area_data_variable_id = adv.id
81
+ where gi.sample_geog_level_id = sample_geog_lvl_id and adv.id = area_data_variables_id
82
+ ) areal_data inner join
83
+ (
84
+ SELECT gi.id, gi.label, Sum(ST_Count(ST_Clip(r.rast, bound.geog::geometry))) as cell_count, ST_union(bound.geog::geometry) as geom
85
+ from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
86
+ inner join boundaries bound on bound.geog_instance_id = gi.id
87
+ inner join new_rast r on ST_Intersects(r.rast,bound.geog::geometry)
88
+ where gi.sample_geog_level_id = sample_geog_lvl_id
89
+ group by gi.id
90
+ ) clip on areal_data.id = clip.id;
91
+ END;
92
+ $BODY$
93
+ LANGUAGE 'plpgsql';
94
+
95
+ SQL_O_MATIC
96
+
97
+ execute "DROP FUNCTION IF EXISTS terrapop_areal_rasterization(bigint,bigint,bigint,bigint,integer)"
98
+
99
+ execute cell_count_sql
100
+ execute rasterization_sql
101
+
102
+ end
103
+ end
@@ -0,0 +1,39 @@
1
+ class CreateAreaDataRasters < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :area_data_rasters do |t|
5
+ t.column :sample_geog_level_id, :bigint, null: false
6
+ t.column :raster_variable_id, :bigint, null: false
7
+ t.column :area_data_variable_id, :bigint, null: false
8
+ t.column :raster_size, :bigint, null: false, default: 1
9
+ t.column :valid, :boolean, null: false, default: true
10
+ t.column :rast, :raster
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :area_data_rasters, :sample_geog_level_id
15
+ add_index :area_data_rasters, :raster_variable_id
16
+ add_index :area_data_rasters, :area_data_variable_id
17
+
18
+ add_index :area_data_rasters, [:sample_geog_level_id, :raster_variable_id, :area_data_variable_id, :raster_size], unique: true, name: :area_data_rasters_uniq_index
19
+
20
+ foreign_key :area_data_rasters, :sample_geog_level_id
21
+ foreign_key :area_data_rasters, :area_data_variable_id
22
+ foreign_key :area_data_rasters, :raster_variable_id
23
+
24
+ #tiff_o_sql = <<-TIFF_O_MATIC
25
+ #CREATE OR REPLACE Function terrapop_get_area_level_raster_as_tiff(area_data_raster_id bigint)
26
+ # Returns TABLE (geotiff bytea) as
27
+ # $BODY$
28
+ # BEGIN
29
+ # RETURN
30
+ # SELECT ST_AsTiff(adr.rast,'LZW',4326) AS rast_bytea FROM area_data_rasters AS adr WHERE id = area_data_raster_id;
31
+ # END;
32
+ # $BODY$
33
+ # LANGUAGE plpgsql;
34
+ #TIFF_O_MATIC
35
+
36
+ #execute tiff_o_sql
37
+
38
+ end
39
+ end
@@ -0,0 +1,5 @@
1
+ class RenameValidColumnOnAreaDataRaster < ActiveRecord::Migration
2
+ def change
3
+ rename_column :area_data_rasters, :valid, :is_valid
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddColumnsToAreaDataRaster < ActiveRecord::Migration
2
+ def change
3
+
4
+ add_column :area_data_rasters, :label, :string, limit: 128
5
+ add_column :area_data_rasters, :mnemonic, :string, limit: 32
6
+ add_column :area_data_rasters, :value, :decimal, :precision => 64, :scale => 10
7
+ add_column :area_data_rasters, :cell_count, :bigint
8
+ add_column :area_data_rasters, :pop_per_pixel, :decimal, :precision => 64, :scale => 10
9
+
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ class AlterAreaDataRasterIndexes < ActiveRecord::Migration
2
+ def change
3
+ remove_index :area_data_rasters, name: :area_data_rasters_uniq_index
4
+
5
+ add_column :area_data_rasters, :geog_instance_id, :bigint
6
+
7
+ add_index :area_data_rasters, [:sample_geog_level_id, :raster_variable_id, :area_data_variable_id, :geog_instance_id, :raster_size], unique: true, name: :area_data_rasters_uniq_index
8
+
9
+ foreign_key :area_data_rasters, :geog_instance_id
10
+
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ class CreateRasterVariableClassifications < ActiveRecord::Migration
2
+ def change
3
+ create_table :raster_variable_classifications do |t|
4
+ t.column :raster_variable_id, :bigint
5
+ t.timestamps
6
+ end
7
+
8
+ add_column :raster_variables, :raster_variable_classification_id, :bigint
9
+ foreign_key :raster_variables, :raster_variable_classification_id
10
+
11
+ add_index :raster_variables, :raster_variable_classification_id
12
+ add_index :raster_variable_classifications, :raster_variable_id
13
+
14
+ foreign_key :raster_variable_classifications, :raster_variable_id
15
+
16
+ # add_index :rasters, :raster_variable_id
17
+
18
+ end
19
+ end
20
+
21
+ # A RasterVariable that is mosaic'd has many RasterVariables
22
+ #
23
+ #
24
+ #
25
+ #
26
+ #
27
+ #
28
+ #
29
+ #
@@ -0,0 +1,9 @@
1
+ class AddOtherRasterVariablesToRasterVariableClassification < ActiveRecord::Migration
2
+ def change
3
+ add_column :raster_variable_classifications, :mosaic_raster_variable_id, :bigint
4
+
5
+ add_index :raster_variable_classifications, :mosaic_raster_variable_id, name: :rvc_mosaic_raster_variable_id
6
+ foreign_key_raw :raster_variable_classifications, :mosaic_raster_variable_id, :raster_variables, :id
7
+
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddGroupingIndicatorToRasterClassifications < ActiveRecord::Migration
2
+ def change
3
+ add_column :raster_variable_classifications, :grouping, :bigint, default: nil
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddClassificationIndicatorToRasterVariable < ActiveRecord::Migration
2
+ def change
3
+ add_column :raster_variables, :classification, :bigint, default: nil
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class RemoveBoundaryIdFromGeogInstance < ActiveRecord::Migration
2
+ def change
3
+ remove_constraint_if_exists :geog_instances, :geog_instances_boundary_id_fkey
4
+ remove_column :geog_instances, :boundary_id
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ class AddTerrapopSampleIdToMapAndGeogInstance < ActiveRecord::Migration
2
+ def change
3
+
4
+ add_column :maps, :terrapop_sample_id, :bigint
5
+ add_column :geog_instances, :terrapop_sample_id, :bigint
6
+
7
+ foreign_key :geog_instances, :terrapop_sample_id
8
+ foreign_key :maps, :terrapop_sample_id
9
+
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ class AddNhgisDatFileToSampleGeogLevel < ActiveRecord::Migration
2
+ def change
3
+ add_column :sample_geog_levels, :nhgis_dat_file, :string, limit: 254, null: true
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddColumnsToSampleLevelAreaDataVariable < ActiveRecord::Migration
2
+ def change
3
+ add_column :sample_level_area_data_variables, :start_pos, :bigint, null: true
4
+ add_column :sample_level_area_data_variables, :width, :bigint, null: true
5
+ end
6
+ end
@@ -0,0 +1,39 @@
1
+ class CreateCategoricalRasterSummarization < ActiveRecord::Migration
2
+ def change
3
+
4
+ geog_instances = GeogInstance.where({}).limit(10)
5
+ raster_variables = RasterVariable.where({}).limit(1)
6
+
7
+ results_sql = <<-RASTER_O_MATIC
8
+ SELECT clip.description, (clip.rd).value::integer as int_cat, upper(clip.mnemonic) || '_' || ((clip.rd).value::text) as cat, SUM((clip.rd).count) as numcells
9
+ FROM (
10
+ select ST_ValueCount(ST_Clip(r.rast, p.geog::geometry)) as rd, p.description, p.code, rv.mnemonic
11
+ from boundaries p
12
+ INNER JOIN rasters r on ST_Intersects(r.rast, p.geog::geometry)
13
+ INNER JOIN raster_variables rv ON rv.id = r.raster_variable_id
14
+ WHERE p.geog_instance_id IN (#{geog_instances.map{|gi| gi.id}.join(", ")}) AND r.raster_variable_id IN (#{raster_variables.map{|rv| rv.id}.join(", ")})
15
+ ) clip
16
+ WHERE (clip.rd).value IN (select DISTINCT (clip.rd).value::integer as all_LC
17
+ from(
18
+ SELECT ST_ValueCount(r.rast) as rd FROM boundaries p INNER JOIN rasters r on ST_Intersects(r.rast, p.geog::geometry) WHERE p.geog_instance_id IN (#{geog_instances.map{|gi| gi.id}.join(", ")}) AND r.raster_variable_id IN (#{raster_variables.map{|rv| rv.id}.join(", ")})
19
+ ) as lc
20
+ ORDER BY all_LC)
21
+ GROUP BY clip.description, (clip.rd).value, cat
22
+ ORDER BY 1,2
23
+ END;
24
+ $$;
25
+ RASTER_O_MATIC
26
+
27
+ category_sql = <<-RASTER_O_MATIC
28
+ select DISTINCT upper(clip.mnemonic) || '_' || ((clip.rd).value::text) as cat, (clip.rd).value::integer as int_cat
29
+ from(
30
+ SELECT ST_ValueCount(r.rast) as rd, rv.mnemonic FROM boundaries p
31
+ INNER JOIN rasters r on ST_Intersects(r.rast, p.geog::geometry)
32
+ INNER JOIN raster_variables rv ON rv.id = r.raster_variable_id WHERE p.geog_instance_id IN (#{geog_instances.map{|gi| gi.id}.join(", ")}) AND r.raster_variable_id IN (#{raster_variables.map{|rv| rv.id}.join(", ")})
33
+ ) clip ORDER BY (clip.rd).value::integer
34
+ END;
35
+ $$;
36
+ RASTER_O_MATIC
37
+
38
+ end
39
+ end
@@ -0,0 +1,5 @@
1
+ class AddMarginFileToSampleGeogLevel < ActiveRecord::Migration
2
+ def change
3
+ add_column :sample_geog_levels, :nhgis_dat_file_m, :string, limit: 254, null: true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddMarginFieldToAreaDataValue < ActiveRecord::Migration
2
+ def change
3
+ add_column :area_data_values, :margin_value, :decimal, precision: 64, scale: 10, null: true
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ class AddJoinFieldsToSampleGeogLevel < ActiveRecord::Migration
2
+ def change
3
+ add_column :sample_geog_levels, :gisjoin1_start, :bigint, null: true
4
+ add_column :sample_geog_levels, :gisjoin1_width, :bigint, null: true
5
+ add_column :sample_geog_levels, :gisjoin2_start, :bigint, null: true
6
+ add_column :sample_geog_levels, :gisjoin2_width, :bigint, null: true
7
+ end
8
+ end
@@ -0,0 +1,62 @@
1
+ class AddNewCategoricalSummarizationFunction < ActiveRecord::Migration
2
+ def change
3
+
4
+ sql = <<-SQL
5
+
6
+ CREATE OR REPLACE FUNCTION terrapop_categorical_raster_v0(IN sample_geog_lvl_id bigint, IN rasters_id bigint)
7
+ RETURNS TABLE(geog_instance_id bigint, geog_instance_label character varying, num_class bigint, mod_class double precision, total_area double precision) AS
8
+ $BODY$
9
+ DECLARE
10
+
11
+ BEGIN
12
+
13
+ RETURN QUERY
14
+ WITH poly_table AS (
15
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
16
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as geom
17
+ FROM sample_geog_levels sgl
18
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
19
+ inner join boundaries bound on bound.geog_instance_id = gi.id
20
+ WHERE sgl.id = sample_geog_lvl_id
21
+ ),
22
+ cat_rast AS
23
+ (
24
+ select p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code, ST_Union(ST_Clip(r.rast, p.geom)) as rast
25
+ from poly_table p inner join rasters r on ST_Intersects(r.rast, p.geom)
26
+ where r.raster_variable_id = rasters_id
27
+ group by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
28
+ ),
29
+ area_rast AS
30
+ (
31
+ select p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code, (ST_SummaryStats(ST_Union(ST_Clip(r.rast, p.geom)))).sum as categorical_area
32
+ from poly_table p inner join rasters r on ST_Intersects(r.rast, p.geom)
33
+ where r.raster_variable_id = ( select rv.area_reference_id from raster_variables rv where rv.id = rasters_id limit 1 )
34
+ group by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
35
+ )
36
+ SELECT area_rast.geog_instance_id, area_rast.geog_instance_label, cat_num_classes.number_of_classes, cat_mode_class.value as modal_class, area_rast.categorical_area
37
+ FROM area_rast inner join
38
+ (
39
+ SELECT cat_count.geog_instance_id, cat_count.geog_instance_label, count(cat_count.value) as number_of_classes
40
+ FROM (
41
+ select cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).value
42
+ from cat_rast
43
+ ) cat_count
44
+ GROUP BY cat_count.geog_instance_id, cat_count.geog_instance_label
45
+ ) cat_num_classes on (area_rast.geog_instance_id = cat_num_classes.geog_instance_id) inner join
46
+ (
47
+ SELECT DISTINCT ON (cat_rast.geog_instance_id, cat_rast.geog_instance_label)
48
+ cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).*
49
+ FROM cat_rast
50
+ ORDER BY cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).count DESC
51
+ ) cat_mode_class ON (area_rast.geog_instance_id = cat_mode_class.geog_instance_id);
52
+
53
+ END;
54
+
55
+ $BODY$
56
+ LANGUAGE plpgsql VOLATILE;
57
+ SQL
58
+
59
+ execute sql
60
+
61
+ end
62
+ end