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,19 @@
1
+ class RenameRastersNewToNewRasters < ActiveRecord::Migration
2
+ def change
3
+
4
+ create_table :new_rasters do |t|
5
+ t.column :raster_variable_id, :bigint
6
+ t.column :table_name, :text
7
+ t.column :area_reference_id, :bigint
8
+ t.column :second_area_reference_id, :bigint
9
+ t.column :r_table_schema, :text
10
+ t.timestamps
11
+ end
12
+
13
+ add_index :new_rasters, :raster_variable_id
14
+ add_index :new_rasters, :area_reference_id
15
+ add_index :new_rasters, :second_area_reference_id
16
+
17
+ foreign_key :new_rasters, :raster_variable_id
18
+ end
19
+ end
@@ -0,0 +1,70 @@
1
+ class UpdateTableNameInMakeJpeg2 < ActiveRecord::Migration
2
+ def change
3
+ sql=<<-SQL
4
+ CREATE OR REPLACE FUNCTION make_jpeg2(IN sample_geog_lvl_id integer, IN rast_id integer, IN rast_band_num integer)
5
+ RETURNS SETOF raster AS
6
+ $BODY$
7
+ DECLARE
8
+
9
+ one_raster text := 'hello';
10
+ query text := '';
11
+
12
+ BEGIN
13
+
14
+ WITH lookup AS
15
+ (
16
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
17
+ FROM raster_variables WHERE id IN (
18
+ select raster_variable_classifications.mosaic_raster_variable_id
19
+ from raster_variable_classifications
20
+ where raster_variable_classifications.raster_variable_id = rast_id )
21
+ ), cat_rast as
22
+ (
23
+ SELECT rv.second_area_reference_id as cat_id
24
+ FROM raster_variables rv
25
+ WHERE rv.id = rast_id
26
+ )
27
+ SELECT r_table_schema || '.' || table_name as tablename
28
+ INTO one_raster
29
+ FROM cat_rast inner join new_rasters on cat_rast.cat_id = new_rasters.raster_variable_id ;
30
+
31
+ RAISE NOTICE ' % ', one_raster;
32
+
33
+ query := $$ WITH lookup AS
34
+ (
35
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
36
+ NTOFROM raster_variables WHERE id IN (
37
+ select raster_variable_classifications.mosaic_raster_variable_id
38
+ from raster_variable_classifications
39
+ where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
40
+ )
41
+ , transformation as
42
+ (
43
+ SELECT ST_SRID(r.rast) as prj_value
44
+ FROM $$ || one_raster || $$ r
45
+ LIMIT 1
46
+ ), polygon as
47
+ (
48
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
49
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
50
+ FROM transformation t, sample_geog_levels sgl
51
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
52
+ inner join boundaries bound on bound.geog_instance_id = gi.id
53
+ WHERE sgl.id = $$ || sample_geog_lvl_id || $$
54
+ )
55
+ SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
56
+ FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
57
+
58
+ RAISE NOTICE ' % ', query;
59
+
60
+ RETURN QUERY execute query;
61
+
62
+ END;
63
+ $BODY$
64
+ LANGUAGE plpgsql VOLATILE
65
+ COST 100
66
+ ROWS 1000;
67
+ SQL
68
+ execute sql
69
+ end
70
+ end
@@ -0,0 +1,36 @@
1
+
2
+ class JpegClipExperiment < ActiveRecord::Migration
3
+ def change
4
+ sql = <<-SQL
5
+ CREATE OR REPLACE Function terrapop_jpeg_raster_clip_colormap_v2(sample_geog_lvl_id bigint, rasters_id bigint, raster_bnd integer, colormap text)
6
+ RETURNS TABLE (tiff bytea) AS
7
+ $BODY$
8
+
9
+ BEGIN
10
+ RETURN QUERY
11
+
12
+ WITH poly_table AS
13
+ (
14
+ SELECT ST_Buffer(ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)), 0.0000001) as geom
15
+ FROM sample_geog_levels sgl
16
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
17
+ inner join boundaries bound on bound.geog_instance_id = gi.id
18
+ where gi.sample_geog_level_id = sample_geog_lvl_id
19
+ ),
20
+ new_rast AS
21
+ (
22
+ SELECT ST_Union(ST_Clip(r.rast, raster_bnd, p.geom, TRUE)) as rast
23
+ FROM poly_table p inner join rasters r on ST_Intersects(r.rast, p.geom)
24
+ where r.raster_variable_id = rasters_id
25
+ )
26
+ select ST_AsJPEG(ST_ColorMap(ST_Union(r.rast), 1, colormap), 1) as tiff from new_rast r;
27
+
28
+ END;
29
+ $BODY$
30
+ LANGUAGE 'plpgsql';
31
+ SQL
32
+
33
+ execute sql
34
+
35
+ end
36
+ end
@@ -0,0 +1,34 @@
1
+ class CreateNewTiffRasterClipWithBuffer < ActiveRecord::Migration
2
+ def change
3
+ sql1 = <<-SQL
4
+ CREATE OR REPLACE Function terrapop_tiff_raster_clip_v2(sample_geog_lvl_id bigint, rasters_id bigint, raster_bnd integer)
5
+ RETURNS TABLE (tiff bytea) AS
6
+ $BODY$
7
+
8
+ BEGIN
9
+ RETURN QUERY
10
+
11
+ WITH poly_table AS
12
+ (
13
+ SELECT ST_Buffer(ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)), 0.0000001) as geom
14
+ FROM sample_geog_levels sgl
15
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
16
+ inner join boundaries bound on bound.geog_instance_id = gi.id
17
+ where gi.sample_geog_level_id = sample_geog_lvl_id
18
+ ),
19
+ new_rast AS
20
+ (
21
+ SELECT ST_Union(ST_Clip(r.rast, raster_bnd, p.geom, TRUE)) as rast
22
+ FROM poly_table p inner join rasters r on ST_Intersects(r.rast,p.geom)
23
+ where r.raster_variable_id = rasters_id
24
+ )
25
+ select ST_AsTiff(ST_Union(r.rast),'LZW', (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as tiff from new_rast r;
26
+
27
+ END;
28
+ $BODY$
29
+ LANGUAGE 'plpgsql';
30
+ SQL
31
+
32
+ execute sql1
33
+ end
34
+ end
@@ -0,0 +1,77 @@
1
+ class UpdateTableNameInMakeJpeg2PartDeux < ActiveRecord::Migration
2
+ def change
3
+
4
+ sql0 =<<-SQL
5
+ DROP FUNCTION IF EXISTS make_jpeg2(integer, integer, integer);
6
+ SQL
7
+
8
+ sql=<<-SQL
9
+ CREATE OR REPLACE FUNCTION make_jpeg2(IN sample_geog_lvl_id bigint, IN rast_id bigint, IN rast_band_num integer)
10
+ RETURNS SETOF raster AS
11
+ $BODY$
12
+ DECLARE
13
+
14
+ one_raster text := 'hello';
15
+ query text := '';
16
+
17
+ BEGIN
18
+
19
+ WITH lookup AS
20
+ (
21
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
22
+ FROM raster_variables WHERE id IN (
23
+ select raster_variable_classifications.mosaic_raster_variable_id
24
+ from raster_variable_classifications
25
+ where raster_variable_classifications.raster_variable_id = rast_id )
26
+ ), cat_rast as
27
+ (
28
+ SELECT rv.second_area_reference_id as cat_id
29
+ FROM raster_variables rv
30
+ WHERE rv.id = rast_id
31
+ )
32
+ SELECT r_table_schema || '.' || table_name as tablename
33
+ INTO one_raster
34
+ FROM cat_rast inner join new_rasters on cat_rast.cat_id = new_rasters.raster_variable_id ;
35
+
36
+ RAISE NOTICE ' % ', one_raster;
37
+
38
+ query := $$ WITH lookup AS
39
+ (
40
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
41
+ FROM raster_variables WHERE id IN (
42
+ select raster_variable_classifications.mosaic_raster_variable_id
43
+ from raster_variable_classifications
44
+ where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
45
+ )
46
+ , transformation as
47
+ (
48
+ SELECT ST_SRID(r.rast) as prj_value
49
+ FROM $$ || one_raster || $$ r
50
+ LIMIT 1
51
+ ), polygon as
52
+ (
53
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
54
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
55
+ FROM transformation t, sample_geog_levels sgl
56
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
57
+ inner join boundaries bound on bound.geog_instance_id = gi.id
58
+ WHERE sgl.id = $$ || sample_geog_lvl_id || $$
59
+ )
60
+ SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
61
+ FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
62
+
63
+ RAISE NOTICE ' % ', query;
64
+
65
+ RETURN QUERY execute query;
66
+
67
+ END;
68
+ $BODY$
69
+ LANGUAGE plpgsql VOLATILE
70
+ COST 100
71
+ ROWS 1000;
72
+ SQL
73
+
74
+ execute sql0
75
+ execute sql
76
+ end
77
+ end
@@ -0,0 +1,5 @@
1
+ class DropRastersNew < ActiveRecord::Migration
2
+ def change
3
+ drop_table :rasters_new
4
+ end
5
+ end
@@ -0,0 +1,70 @@
1
+ class MakeJpeg2PartDeux < ActiveRecord::Migration
2
+ def change
3
+ sql=<<-SQL
4
+ CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_raster_v1(IN sample_geog_lvl_id integer, IN rast_id integer, IN rast_band_num integer)
5
+ RETURNS SETOF raster AS
6
+ $BODY$
7
+ DECLARE
8
+
9
+ one_raster text := 'hello';
10
+ query text := '';
11
+
12
+ BEGIN
13
+
14
+ WITH lookup AS
15
+ (
16
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
17
+ FROM raster_variables WHERE id IN (
18
+ select raster_variable_classifications.mosaic_raster_variable_id
19
+ from raster_variable_classifications
20
+ where raster_variable_classifications.raster_variable_id = rast_id )
21
+ ), cat_rast as
22
+ (
23
+ SELECT rv.second_area_reference_id as cat_id
24
+ FROM raster_variables rv
25
+ WHERE rv.id = rast_id
26
+ )
27
+ SELECT r_table_schema || '.' || table_name as tablename
28
+ INTO one_raster
29
+ FROM cat_rast inner join rasters_new on cat_rast.cat_id = rasters_new.raster_variable_id ;
30
+
31
+ RAISE NOTICE ' % ', one_raster;
32
+
33
+ query := $$ WITH lookup AS
34
+ (
35
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
36
+ NTOFROM raster_variables WHERE id IN (
37
+ select raster_variable_classifications.mosaic_raster_variable_id
38
+ from raster_variable_classifications
39
+ where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
40
+ )
41
+ , transformation as
42
+ (
43
+ SELECT ST_SRID(r.rast) as prj_value
44
+ FROM $$ || one_raster || $$ r
45
+ LIMIT 1
46
+ ), polygon as
47
+ (
48
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
49
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
50
+ FROM transformation t, sample_geog_levels sgl
51
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
52
+ inner join boundaries bound on bound.geog_instance_id = gi.id
53
+ WHERE sgl.id = $$ || sample_geog_lvl_id || $$
54
+ )
55
+ SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
56
+ FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
57
+
58
+ RAISE NOTICE ' % ', query;
59
+
60
+ RETURN QUERY execute query;
61
+
62
+ END;
63
+ $BODY$
64
+ LANGUAGE plpgsql VOLATILE
65
+ COST 100
66
+ ROWS 1000;
67
+ SQL
68
+ execute sql
69
+ end
70
+ end
@@ -0,0 +1,79 @@
1
+ class CorrectNewRastersTableInNewMakeJpeg2Function < ActiveRecord::Migration
2
+ def change
3
+
4
+ sql0 =<<-SQL
5
+ DROP FUNCTION IF EXISTS terrapop_categorical_to_binary_as_raster_v1(integer, integer, integer);
6
+ SQL
7
+
8
+
9
+ sql=<<-SQL
10
+ CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_raster_v1(IN sample_geog_lvl_id bigint, IN rast_id bigint, IN rast_band_num integer)
11
+ RETURNS SETOF raster AS
12
+ $BODY$
13
+ DECLARE
14
+
15
+ one_raster text := 'hello';
16
+ query text := '';
17
+
18
+ BEGIN
19
+
20
+ WITH lookup AS
21
+ (
22
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
23
+ FROM raster_variables WHERE id IN (
24
+ select raster_variable_classifications.mosaic_raster_variable_id
25
+ from raster_variable_classifications
26
+ where raster_variable_classifications.raster_variable_id = rast_id )
27
+ ), cat_rast as
28
+ (
29
+ SELECT rv.second_area_reference_id as cat_id
30
+ FROM raster_variables rv
31
+ WHERE rv.id = rast_id
32
+ )
33
+ SELECT r_table_schema || '.' || table_name as tablename
34
+ INTO one_raster
35
+ FROM cat_rast inner join new_rasters on cat_rast.cat_id = new_rasters.raster_variable_id ;
36
+
37
+ RAISE NOTICE ' % ', one_raster;
38
+
39
+ query := $$ WITH lookup AS
40
+ (
41
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
42
+ NTOFROM raster_variables WHERE id IN (
43
+ select raster_variable_classifications.mosaic_raster_variable_id
44
+ from raster_variable_classifications
45
+ where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
46
+ )
47
+ , transformation as
48
+ (
49
+ SELECT ST_SRID(r.rast) as prj_value
50
+ FROM $$ || one_raster || $$ r
51
+ LIMIT 1
52
+ ), polygon as
53
+ (
54
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
55
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
56
+ FROM transformation t, sample_geog_levels sgl
57
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
58
+ inner join boundaries bound on bound.geog_instance_id = gi.id
59
+ WHERE sgl.id = $$ || sample_geog_lvl_id || $$
60
+ )
61
+ SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
62
+ FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
63
+
64
+ RAISE NOTICE ' % ', query;
65
+
66
+ RETURN QUERY execute query;
67
+
68
+ END;
69
+ $BODY$
70
+ LANGUAGE plpgsql VOLATILE
71
+ COST 100
72
+ ROWS 1000;
73
+ SQL
74
+
75
+ execute sql0
76
+
77
+ execute sql
78
+ end
79
+ end
@@ -0,0 +1,78 @@
1
+ class EvenMoreCorrectNewRastersTableInNewMakeJpeg2Function < ActiveRecord::Migration
2
+ def change
3
+ sql0 =<<-SQL
4
+ DROP FUNCTION IF EXISTS terrapop_categorical_to_binary_as_raster_v1(integer, integer, integer);
5
+ SQL
6
+
7
+
8
+ sql=<<-SQL
9
+ CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_raster_v1(IN sample_geog_lvl_id bigint, IN rast_id bigint, IN rast_band_num integer)
10
+ RETURNS SETOF raster AS
11
+ $BODY$
12
+ DECLARE
13
+
14
+ one_raster text := 'hello';
15
+ query text := '';
16
+
17
+ BEGIN
18
+
19
+ WITH lookup AS
20
+ (
21
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
22
+ FROM raster_variables WHERE id IN (
23
+ select raster_variable_classifications.mosaic_raster_variable_id
24
+ from raster_variable_classifications
25
+ where raster_variable_classifications.raster_variable_id = rast_id )
26
+ ), cat_rast as
27
+ (
28
+ SELECT rv.second_area_reference_id as cat_id
29
+ FROM raster_variables rv
30
+ WHERE rv.id = rast_id
31
+ )
32
+ SELECT r_table_schema || '.' || table_name as tablename
33
+ INTO one_raster
34
+ FROM cat_rast inner join new_rasters on cat_rast.cat_id = new_rasters.raster_variable_id ;
35
+
36
+ RAISE NOTICE ' % ', one_raster;
37
+
38
+ query := $$ WITH lookup AS
39
+ (
40
+ SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
41
+ FROM raster_variables WHERE id IN (
42
+ select raster_variable_classifications.mosaic_raster_variable_id
43
+ from raster_variable_classifications
44
+ where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
45
+ )
46
+ , transformation as
47
+ (
48
+ SELECT ST_SRID(r.rast) as prj_value
49
+ FROM $$ || one_raster || $$ r
50
+ LIMIT 1
51
+ ), polygon as
52
+ (
53
+ SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
54
+ gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
55
+ FROM transformation t, sample_geog_levels sgl
56
+ inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
57
+ inner join boundaries bound on bound.geog_instance_id = gi.id
58
+ WHERE sgl.id = $$ || sample_geog_lvl_id || $$
59
+ )
60
+ SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
61
+ FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
62
+
63
+ RAISE NOTICE ' % ', query;
64
+
65
+ RETURN QUERY execute query;
66
+
67
+ END;
68
+ $BODY$
69
+ LANGUAGE plpgsql VOLATILE
70
+ COST 100
71
+ ROWS 1000;
72
+ SQL
73
+
74
+ execute sql0
75
+
76
+ execute sql
77
+ end
78
+ end