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,20 @@
1
+ class CreateExtractRequestsLabelsJoinTable < ActiveRecord::Migration
2
+ def up
3
+
4
+ create_table :extract_requests_labels, :id => false do |t|
5
+ t.column :extract_request_id, :bigint
6
+ t.column :label_id, :bigint
7
+ t.column :user_id, :bigint
8
+ t.column :visible, :boolean, :default => true, :null => false
9
+ end
10
+
11
+ foreign_key(:extract_requests_labels, :extract_request_id)
12
+ foreign_key_raw(:extract_requests_labels, :label_id, :tags, :id)
13
+ foreign_key(:extract_requests_labels, :user_id)
14
+
15
+ end
16
+
17
+ def down
18
+ drop table :extract_requests_labels
19
+ end
20
+ end
@@ -0,0 +1,13 @@
1
+ class CreateExtractStatuses < ActiveRecord::Migration
2
+ def change
3
+ create_table :extract_statuses do |t|
4
+ t.column :extract_request_id, :bigint
5
+ t.column :status, :string, :limit => 128, :default=>'building request'
6
+ t.column :status_definition_id, :bigint
7
+ t.timestamps
8
+ end
9
+
10
+ foreign_key(:extract_statuses, :extract_request_id)
11
+
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateRequestGeogUnits < ActiveRecord::Migration
2
+ def change
3
+ create_table :request_geog_units do |t|
4
+ t.column :extract_request_id, :bigint, :null=>false
5
+ t.column :geog_unit_id, :bigint, :null=>false
6
+
7
+ t.timestamps
8
+ end
9
+
10
+ foreign_key(:request_geog_units, :extract_request_id)
11
+ foreign_key(:request_geog_units, :geog_unit_id)
12
+ end
13
+ end
@@ -0,0 +1,15 @@
1
+ class CreateRequestTerrapopSamples < ActiveRecord::Migration
2
+ def change
3
+ create_table :request_terrapop_samples do |t|
4
+
5
+ t.column :terrapop_sample_id, :bigint, :null=>false
6
+ t.column :extract_request_id, :bigint, :null=>false
7
+ t.timestamps
8
+
9
+ end
10
+
11
+ foreign_key(:request_terrapop_samples, :terrapop_sample_id)
12
+ foreign_key(:request_terrapop_samples, :extract_request_id)
13
+
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ class CreateRequestVariable < ActiveRecord::Migration
2
+ def change
3
+ create_table :request_variables do |t|
4
+ t.column :variable_id, :bigint, :null=>false
5
+ t.column :extract_request_id, :bigint, :null=>false
6
+ t.timestamps
7
+
8
+ end
9
+
10
+ foreign_key(:request_variables, :variable_id)
11
+ foreign_key(:request_variables, :extract_request_id)
12
+
13
+ add_index :request_variables,:extract_request_id
14
+ add_index :request_variables,:variable_id
15
+ end
16
+ end
@@ -0,0 +1,18 @@
1
+ class CreateRequestAreaDataVariables < ActiveRecord::Migration
2
+
3
+ def change
4
+
5
+ create_table :request_area_data_variables do |t|
6
+ t.column :area_data_variable_id, :bigint, :null=>false
7
+ t.column :extract_request_id, :bigint, :null=>false
8
+ t.timestamps
9
+ end # create table
10
+
11
+ foreign_key(:request_area_data_variables, :extract_request_id)
12
+
13
+ add_index :request_area_data_variables, :area_data_variable_id
14
+ add_index :request_area_data_variables, :extract_request_id
15
+
16
+ end # change
17
+
18
+ end
@@ -0,0 +1,20 @@
1
+ class CreateRequestRasterVariables < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :request_raster_variables do |t|
5
+ t.column :raster_variable_id, :bigint, :null=>false
6
+ t.column :extract_request_id, :bigint, :null=>false
7
+ t.column :raster_operation_id, :bigint, :null=>true # this can be null for raster extracts, but should be populated for area_level extracts
8
+ t.timestamps
9
+ end # create table
10
+
11
+ foreign_key(:request_raster_variables, :raster_variable_id)
12
+ foreign_key(:request_raster_variables, :extract_request_id)
13
+
14
+ add_index :request_raster_variables, :raster_variable_id
15
+ add_index :request_raster_variables, :extract_request_id
16
+ add_index :request_raster_variables, :raster_operation_id
17
+
18
+ end # change
19
+
20
+ end
@@ -0,0 +1,130 @@
1
+ class CreateRasterSummaryFunctions < ActiveRecord::Migration
2
+
3
+ # Note that the PostgreSQL JDBC driver has problems creating stored proces that involve the DECLARE keyword.
4
+ def self.up
5
+ # this version of the stored proc isn't usable because it creates a local variable via the DECLARE keyword, which breaks the PostgreSQL 9.1.4 JDBC driver.
6
+ summary_calc_sql =<<-END_OF_PROC
7
+ CREATE OR REPLACE FUNCTION terrapop_raster_summary_calc(raster_op_name varchar(32), rast raster)
8
+ RETURNS numeric(20,4) as $$
9
+ DECLARE
10
+ summary_val numeric(20,4);
11
+ BEGIN
12
+ CASE raster_op_name
13
+ WHEN 'max' THEN summary_val := CAST((ST_SummaryStats(rast)).max as numeric(20,4));
14
+ WHEN 'min' THEN summary_val := CAST((ST_SummaryStats(rast)).min as numeric(20,4));
15
+ WHEN 'mean' THEN summary_val := CAST((ST_SummaryStats(rast)).mean as numeric(20,4));
16
+ WHEN 'count' THEN summary_val := CAST((ST_SummaryStats(rast)).count as numeric(20,4));
17
+ WHEN 'sum' THEN summary_val := CAST((ST_SummaryStats(rast)).sum as numeric(20,4));
18
+ WHEN 'mode' THEN SELECT histogram.value into summary_val
19
+ FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram
20
+ ORDER BY histogram.count desc limit 1;
21
+ ELSE summary_val := null;
22
+ END CASE;
23
+
24
+ RETURN summary_val;
25
+ END;
26
+ $$ LANGUAGE plpgsql
27
+ END_OF_PROC
28
+
29
+ # so, since declare is off-limits, we can use a different structure which requires having a utility function.
30
+ # This function is also somewhat awkward, the RETURN at the end returns the value in the single OUT parameter
31
+ # as declared in the RETURNS part of the signature.
32
+
33
+ # Note that we can't use SELECT INTO STRICT here because the return value might be NULL, if the whole raster tile is nodata.
34
+
35
+ summary_calc_modal_sql = <<-END_OF_PROC
36
+ CREATE OR REPLACE FUNCTION terrapop_modal_value(rast raster, OUT modal numeric) RETURNS numeric
37
+ LANGUAGE plpgsql
38
+ AS $$
39
+ BEGIN
40
+ SELECT histogram.value into modal
41
+ FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram
42
+ ORDER BY histogram.count desc limit 1;
43
+ return;
44
+ END;
45
+ $$;
46
+ END_OF_PROC
47
+
48
+ summary_calc_num_classes_sql = <<-END_OF_PROC
49
+ CREATE OR REPLACE FUNCTION terrapop_num_classes(rast raster, OUT num_classes numeric) RETURNS numeric
50
+ LANGUAGE plpgsql
51
+ AS $$
52
+ BEGIN
53
+ SELECT count(histogram.*) into num_classes
54
+ FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram;
55
+ return;
56
+ END;
57
+ $$;
58
+ END_OF_PROC
59
+
60
+
61
+ summary_calc_nodeclare_sql =<<-END_OF_PROC
62
+ CREATE OR REPLACE FUNCTION terrapop_raster_summary_calc(raster_op_name varchar(32), rast raster, area float) RETURNS numeric
63
+ LANGUAGE plpgsql
64
+ AS $$
65
+ BEGIN
66
+ RETURN CASE raster_op_name
67
+ WHEN 'max' THEN CAST((ST_SummaryStats(rast)).max as numeric(20,4))
68
+ WHEN 'min' THEN CAST((ST_SummaryStats(rast)).min as numeric(20,4))
69
+ WHEN 'mean' THEN CAST((ST_SummaryStats(rast)).mean as numeric(20,4))
70
+ WHEN 'count' THEN CAST((ST_SummaryStats(rast)).count as numeric(20,4))
71
+ WHEN 'sum' THEN CAST((ST_SummaryStats(rast)).sum as numeric(20,4))
72
+ WHEN 'mode' THEN terrapop_modal_value(rast)
73
+ WHEN 'num_classes' THEN terrapop_num_classes(rast)
74
+ WHEN 'total_area_areal' THEN CAST((ST_SummaryStats(rast)).sum as numeric(20,4))
75
+ WHEN 'percent_area_areal' THEN CAST(((ST_SummaryStats(rast)).sum / area ) as numeric(20,4))
76
+ ELSE null
77
+ END;
78
+ END;
79
+ $$;
80
+ END_OF_PROC
81
+
82
+ summary_sql = <<-END_OF_PROC
83
+ CREATE OR REPLACE FUNCTION terrapop_raster_summary(sample_geog_lvl_id bigint, raster_var_id bigint, raster_op_name varchar(32))
84
+ RETURNS TABLE(sample_geog_level_id bigint, raster_variable_id bigint, raster_operation_name varchar(32), geog_instance_id bigint,
85
+ geog_instance_label varchar(255), geog_instance_code numeric(20,0), raster_mnemonic varchar(255),
86
+ boundary_area double precision, summary_value numeric(20,4)) AS $$
87
+ BEGIN
88
+ RETURN QUERY
89
+ select unioned_rast.sample_geog_level_id, unioned_rast.raster_variable_id, raster_op_name,
90
+ unioned_rast.geog_instance_id, unioned_rast.geog_instance_label, unioned_rast.geog_instance_code,
91
+ CAST(unioned_rast.raster_variable_name || '_' || raster_op_name as varchar(255)) as mnemonic,
92
+ unioned_rast.boundary_area,
93
+ terrapop_raster_summary_calc(raster_op_name, unioned_rast.rast, unioned_rast.boundary_area) as value
94
+ from (
95
+ select base.sample_geog_level_id, base.raster_variable_id, base.geog_instance_id, base.geog_instance_label,
96
+ base.geog_instance_code, base.raster_variable_name, base.boundary_area,
97
+ st_union(base.rast) as rast
98
+ from (
99
+ SELECT sgl.id as "sample_geog_level_id", my_raster.raster_variable_id as "raster_variable_id",
100
+ gi.id as "geog_instance_id", gi.label as "geog_instance_label", gi.code as "geog_instance_code",
101
+ my_raster.name as "raster_variable_name", ST_AREA(bound.geog) as boundary_area,
102
+ ST_Clip(my_raster.rast, bound.geog::geometry) as rast
103
+ FROM sample_geog_levels sgl
104
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
105
+ inner join boundaries bound on bound.geog_instance_id = gi.id
106
+ inner join rasters my_raster on ST_Intersects(my_raster.rast, bound.geog::geometry)
107
+ where sgl.id = sample_geog_lvl_id and my_raster.raster_variable_id = raster_var_id
108
+ ) base
109
+ group by base.sample_geog_level_id, base.raster_variable_id, base.geog_instance_label,
110
+ base.geog_instance_id, base.geog_instance_code, base.raster_variable_name,
111
+ base.boundary_area
112
+ ) unioned_rast
113
+ order by unioned_rast.geog_instance_code;
114
+ END;
115
+ $$ LANGUAGE plpgsql
116
+ END_OF_PROC
117
+
118
+ execute summary_calc_modal_sql
119
+ execute summary_calc_num_classes_sql
120
+ execute summary_calc_nodeclare_sql
121
+ execute summary_sql
122
+ end
123
+
124
+ def self.down
125
+ execute 'drop function if exists terrapop_modal_value(rast raster, OUT modal numeric)'
126
+ execute 'drop function if exists terrapop_num_classes(rast raster, OUT num_classes numeric)'
127
+ execute 'drop function if exists terrapop_raster_summary_calc(raster_op_name varchar(32), rast raster)'
128
+ execute 'drop function if exists terrapop_raster_summary(sample_geog_lvl_id bigint, raster_var_id bigint, raster_op_name varchar(32))'
129
+ end
130
+ end
@@ -0,0 +1,24 @@
1
+ class CreateTerrapopSettings < ActiveRecord::Migration
2
+
3
+ def change
4
+
5
+ create_table :terrapop_settings do |t|
6
+ t.hstore :data
7
+ t.timestamps
8
+ end
9
+
10
+ ###
11
+ #
12
+ # Using a GIN index instead of a GIST index
13
+ #
14
+ # GIN indexes take longer to create but are generally faster to query
15
+ #
16
+ # more information:
17
+ # http://www.postgresql.org/docs/9.2/static/textsearch-indexes.html
18
+ #
19
+
20
+ execute "CREATE INDEX terrapop_settings_gin_data ON terrapop_settings USING GIN(data)"
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,18 @@
1
+ class CreateAttachedVariablePointer < ActiveRecord::Migration
2
+ def up
3
+
4
+ # Basically a list of valid pointers. The mnemonic matches mnemonics of microdata variables in the 'variables' table.
5
+ # We don't need a foreign key or anything; these are mostly for selection and testing purposes.
6
+ create_table "attached_variable_pointers", :force => true do |t|
7
+ t.string "mnemonic"
8
+ t.string "suffix"
9
+ t.string "label"
10
+ t.timestamps
11
+ end
12
+
13
+ end
14
+
15
+ def down
16
+ #drop_table :attached_variable_pointers
17
+ end
18
+ end
@@ -0,0 +1,9 @@
1
+ class AddAttachedVariablePointerId < ActiveRecord::Migration
2
+ def up
3
+ add_column :request_variables,:attached_variable_pointer_id, :integer
4
+ end
5
+
6
+ def down
7
+ remove_column :request_variables, :attached_variable_pointer_id
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddWantsAttached < ActiveRecord::Migration
2
+ def up
3
+ add_column :request_variables,:wants_attached,:boolean
4
+ end
5
+
6
+ def down
7
+ remove_column :request_variables,:wants_attached,:boolean
8
+ end
9
+ end
@@ -0,0 +1,68 @@
1
+ class AddAttributesToTerrapopSample < ActiveRecord::Migration
2
+ def change
3
+
4
+ # Census characteristics
5
+ add_column :terrapop_samples, :local_title, :text
6
+ add_column :terrapop_samples, :census_agency, :text
7
+ add_column :terrapop_samples, :population_universe, :text
8
+ add_column :terrapop_samples, :de_jure_or_de_facto, :text # ? Can be either or both (see brazil 1960)
9
+ add_column :terrapop_samples, :enumeration_unit, :text # (could maybe abstract to a list, not sure of all possible types. Dwelling,
10
+ add_column :terrapop_samples, :census_start_date, :date
11
+ add_column :terrapop_samples, :census_end_date, :date
12
+ add_column :terrapop_samples, :fieldwork_start_period, :date # ? have start and end dates?
13
+ add_column :terrapop_samples, :fieldwork_end_period, :date
14
+ add_column :terrapop_samples, :enumeration_forms, :text
15
+ add_column :terrapop_samples, :type_of_fieldwork, :text
16
+ add_column :terrapop_samples, :respondent, :text
17
+ add_column :terrapop_samples, :coverage, :float # with null - null indicates "no official estimate"?
18
+ add_column :terrapop_samples, :undercount, :float # : same as coverage
19
+ add_column :terrapop_samples, :undercount_notes, :text
20
+
21
+ # Microdata sample characteristics
22
+ add_column :terrapop_samples, :microdata_source, :text
23
+ add_column :terrapop_samples, :long_form_sample_design, :text
24
+ add_column :terrapop_samples, :mpc_sample_design, :text
25
+ add_column :terrapop_samples, :sample_unit, :text
26
+ add_column :terrapop_samples, :sample_fraction, :float
27
+ add_column :terrapop_samples, :sample_fraction_notes, :text
28
+ add_column :terrapop_samples, :sample_size, :bigint
29
+ add_column :terrapop_samples, :sample_weights, :text
30
+ add_column :terrapop_samples, :sample_characteristics_notes, :text
31
+ add_column :terrapop_samples, :sample_general_notes, :text
32
+
33
+ # Units identified
34
+ add_column :terrapop_samples, :has_dwellings, :boolean
35
+ add_column :terrapop_samples, :has_dwellings_note, :text
36
+ add_column :terrapop_samples, :has_vacant_units, :boolean
37
+ add_column :terrapop_samples, :has_vacant_units_note, :text
38
+ add_column :terrapop_samples, :has_closed_units, :boolean
39
+ add_column :terrapop_samples, :has_closed_units_note, :text
40
+ add_column :terrapop_samples, :smallest_geography, :text
41
+ add_column :terrapop_samples, :has_households, :boolean
42
+ add_column :terrapop_samples, :has_households_note, :text
43
+ add_column :terrapop_samples, :has_families, :boolean
44
+ add_column :terrapop_samples, :has_families_note, :text
45
+ add_column :terrapop_samples, :has_individuals, :boolean
46
+ add_column :terrapop_samples, :has_individuals_note, :text
47
+ add_column :terrapop_samples, :has_group_quarters, :boolean
48
+ add_column :terrapop_samples, :has_group_quarters_note, :text
49
+ add_column :terrapop_samples, :has_indigenous_pop, :boolean
50
+ add_column :terrapop_samples, :has_indigenous_pop_note, :text
51
+ add_column :terrapop_samples, :has_special_pop, :boolean
52
+ add_column :terrapop_samples, :has_special_pop_note, :text
53
+ add_column :terrapop_samples, :units_notes, :text
54
+ add_column :terrapop_samples, :identification_general_notes, :text
55
+
56
+ # Unit definitions
57
+ add_column :terrapop_samples, :unit_definition_household, :text
58
+ add_column :terrapop_samples, :unit_definition_family, :text
59
+ add_column :terrapop_samples, :unit_definition_dwelling, :text
60
+ add_column :terrapop_samples, :unit_definition_group_quarters, :text
61
+ add_column :terrapop_samples, :unit_definition_homeless_population, :text
62
+ add_column :terrapop_samples, :unit_definition_institution, :text
63
+ add_column :terrapop_samples, :unit_definition_institutional_population, :text
64
+ add_column :terrapop_samples, :unit_definition_notes, :text
65
+ add_column :terrapop_samples, :unit_definition_general_notes, :text
66
+
67
+ end
68
+ end
@@ -0,0 +1,5 @@
1
+ class AddDefaultOrderIndexToVariables < ActiveRecord::Migration
2
+ def change
3
+ add_index :variables, :default_order
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class CreateRequestSamples < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :request_samples do |t|
5
+ t.column :sample_id, :bigint, :null => false
6
+ t.column :extract_request_id, :bigint, :null => false
7
+ t.timestamps
8
+ end
9
+
10
+ foreign_key(:request_samples, :sample_id)
11
+ foreign_key(:request_samples, :extract_request_id)
12
+
13
+ end
14
+ end
@@ -0,0 +1,13 @@
1
+ class CreateRequestRasterDatasets < ActiveRecord::Migration
2
+ def change
3
+ create_table :request_raster_datasets do |t|
4
+ t.column :raster_dataset_id, :bigint, :null => false
5
+ t.column :extract_request_id, :bigint, :null => false
6
+ t.timestamps
7
+ end
8
+
9
+ foreign_key(:request_raster_datasets, :raster_dataset_id)
10
+ foreign_key(:request_raster_datasets, :extract_request_id)
11
+
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ class CreateErrorEvents < ActiveRecord::Migration
2
+ def change
3
+ create_table :error_events do |t|
4
+ t.column :user_id, :bigint, :default => nil
5
+ t.column :message, :text, :null => false
6
+ t.column :supplementary, :text
7
+ t.timestamps
8
+ end
9
+ end
10
+ end