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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +34 -0
- data/app/assets/javascripts/terrapop_models/application.js +13 -0
- data/app/assets/stylesheets/terrapop_models/application.css +15 -0
- data/app/controllers/terrapop_models/application_controller.rb +4 -0
- data/app/helpers/terrapop_models/application_helper.rb +4 -0
- data/app/models/api_log.rb +2 -0
- data/app/models/area_data_raster.rb +126 -0
- data/app/models/area_data_raster_variable_mnemonic_lookup.rb +4 -0
- data/app/models/area_data_statistic.rb +6 -0
- data/app/models/area_data_table.rb +25 -0
- data/app/models/area_data_table_group.rb +8 -0
- data/app/models/area_data_table_group_membership.rb +7 -0
- data/app/models/area_data_value.rb +37 -0
- data/app/models/area_data_variable.rb +140 -0
- data/app/models/area_data_variable_construction.rb +6 -0
- data/app/models/attached_variable_pointer.rb +5 -0
- data/app/models/bare_user.rb +7 -0
- data/app/models/boundary.rb +6 -0
- data/app/models/build_status.rb +2 -0
- data/app/models/category.rb +17 -0
- data/app/models/codebook.rb +242 -0
- data/app/models/common_variable.rb +2 -0
- data/app/models/country.rb +45 -0
- data/app/models/country_comparability.rb +6 -0
- data/app/models/country_level.rb +8 -0
- data/app/models/ddi2_codebook.rb +541 -0
- data/app/models/error_event.rb +2 -0
- data/app/models/extract_data_artifact.rb +4 -0
- data/app/models/extract_request.rb +817 -0
- data/app/models/extract_request_area_data_raster_variable_mnemonic_lookup.rb +4 -0
- data/app/models/extract_request_error_event.rb +4 -0
- data/app/models/extract_request_submission.rb +19 -0
- data/app/models/extract_status.rb +55 -0
- data/app/models/extract_type.rb +2 -0
- data/app/models/extract_variable_stub.rb +17 -0
- data/app/models/frequency.rb +7 -0
- data/app/models/geog_instance.rb +18 -0
- data/app/models/geog_unit.rb +5 -0
- data/app/models/global_region.rb +6 -0
- data/app/models/global_region_type.rb +5 -0
- data/app/models/heartbeat.rb +8 -0
- data/app/models/heartbeat_pulse.rb +3 -0
- data/app/models/insert_html_fragment.rb +3 -0
- data/app/models/ipums_academic_status.rb +9 -0
- data/app/models/ipums_anticipated_result.rb +9 -0
- data/app/models/ipums_department.rb +9 -0
- data/app/models/ipums_registration.rb +72 -0
- data/app/models/ipums_user.rb +15 -0
- data/app/models/label.rb +7 -0
- data/app/models/link.rb +21 -0
- data/app/models/map.rb +255 -0
- data/app/models/map_unit.rb +4 -0
- data/app/models/map_unit_raster_dataset.rb +4 -0
- data/app/models/markup_transform.rb +240 -0
- data/app/models/measurement_type.rb +5 -0
- data/app/models/nhgis/agg_data_var.rb +120 -0
- data/app/models/nhgis/breakdown_combo.rb +84 -0
- data/app/models/nhgis/breakdown_var.rb +8 -0
- data/app/models/nhgis/data_file.rb +43 -0
- data/app/models/nhgis/data_file_type.rb +17 -0
- data/app/models/nhgis/data_group.rb +125 -0
- data/app/models/nhgis/data_record_range.rb +22 -0
- data/app/models/nhgis/data_table.rb +8 -0
- data/app/models/nhgis/dataset.rb +76 -0
- data/app/models/nhgis/dataset_group.rb +6 -0
- data/app/models/nhgis/geog_level.rb +14 -0
- data/app/models/nhgis/geog_level_collection.rb +15 -0
- data/app/models/nhgis/geog_level_geog_level_group.rb +10 -0
- data/app/models/nhgis/geog_level_group.rb +87 -0
- data/app/models/nhgis/geog_name.rb +12 -0
- data/app/models/nhgis/geog_unit.rb +11 -0
- data/app/models/nhgis/geog_var 2.rb +10 -0
- data/app/models/nhgis/geog_var.rb +6 -0
- data/app/models/nhgis/geog_var_geog_level.rb +8 -0
- data/app/models/nhgis/geotime.rb +21 -0
- data/app/models/nhgis/integ_geog_instance.rb +6 -0
- data/app/models/nhgis/integ_geog_instance_source_geog_instance.rb +9 -0
- data/app/models/nhgis/integ_geog_level.rb +9 -0
- data/app/models/nhgis/integ_geog_name.rb +12 -0
- data/app/models/nhgis/shape_file.rb +203 -0
- data/app/models/nhgis/shape_file_x_dataset.rb +8 -0
- data/app/models/nhgis/tabulation_type.rb +8 -0
- data/app/models/nhgis/time_instance.rb +6 -0
- data/app/models/nhgis/time_instance_integ_geog_level.rb +9 -0
- data/app/models/nhgis/time_series.rb +12 -0
- data/app/models/nhgis/time_series_component.rb +9 -0
- data/app/models/nhgis/time_series_release.rb +6 -0
- data/app/models/nhgis/time_series_table.rb +13 -0
- data/app/models/nhgis/time_series_table_dataset.rb +9 -0
- data/app/models/nhgis/time_series_table_geog_level.rb +9 -0
- data/app/models/nhgis/time_series_table_time_instance.rb +9 -0
- data/app/models/nhgis/time_series_table_time_series_release.rb +7 -0
- data/app/models/nhgis/time_series_table_topic.rb +9 -0
- data/app/models/nhgis/time_series_table_x_time_series.rb +9 -0
- data/app/models/nhgis_metadata_store.rb +2 -0
- data/app/models/raster.rb +5 -0
- data/app/models/raster_category.rb +6 -0
- data/app/models/raster_category_statistic.rb +7 -0
- data/app/models/raster_data_type.rb +6 -0
- data/app/models/raster_dataset.rb +130 -0
- data/app/models/raster_dataset_group.rb +3 -0
- data/app/models/raster_dataset_raster_data_type.rb +4 -0
- data/app/models/raster_dataset_raster_dataset_unit.rb +4 -0
- data/app/models/raster_dataset_raster_variable.rb +4 -0
- data/app/models/raster_dataset_unit.rb +4 -0
- data/app/models/raster_group.rb +87 -0
- data/app/models/raster_metadata.rb +6 -0
- data/app/models/raster_operation.rb +10 -0
- data/app/models/raster_raster_variable.rb +2 -0
- data/app/models/raster_statistic.rb +6 -0
- data/app/models/raster_value.rb +83 -0
- data/app/models/raster_variable.rb +440 -0
- data/app/models/raster_variable_classification.rb +4 -0
- data/app/models/raster_variable_group_membership.rb +4 -0
- data/app/models/request_area_data_variable.rb +57 -0
- data/app/models/request_geog_unit.rb +6 -0
- data/app/models/request_raster_dataset.rb +4 -0
- data/app/models/request_raster_variable.rb +147 -0
- data/app/models/request_sample.rb +34 -0
- data/app/models/request_sample_geog_level.rb +4 -0
- data/app/models/request_terrapop_sample.rb +6 -0
- data/app/models/request_variable.rb +104 -0
- data/app/models/resolution.rb +5 -0
- data/app/models/sample.rb +81 -0
- data/app/models/sample_design.rb +300 -0
- data/app/models/sample_detail_field.rb +7 -0
- data/app/models/sample_detail_group.rb +3 -0
- data/app/models/sample_detail_value.rb +11 -0
- data/app/models/sample_details.rb +90 -0
- data/app/models/sample_geog_level.rb +150 -0
- data/app/models/sample_level_area_data_variable.rb +13 -0
- data/app/models/sample_variable.rb +11 -0
- data/app/models/status_definition.rb +2 -0
- data/app/models/system_statistic.rb +5 -0
- data/app/models/tag.rb +7 -0
- data/app/models/terrapop_configuration.rb +75 -0
- data/app/models/terrapop_extract_information.rb +64 -0
- data/app/models/terrapop_raster_summary_cache.rb +6 -0
- data/app/models/terrapop_sample.rb +313 -0
- data/app/models/terrapop_setting.rb +11 -0
- data/app/models/topic.rb +7 -0
- data/app/models/ui_text_snippet.rb +2 -0
- data/app/models/universe.rb +5 -0
- data/app/models/user.rb +262 -0
- data/app/models/user_role.rb +5 -0
- data/app/models/variable.rb +127 -0
- data/app/models/variable_availability_cach.rb +3 -0
- data/app/models/variable_group.rb +14 -0
- data/app/models/variable_source.rb +8 -0
- data/app/views/layouts/terrapop_models/application.html.erb +14 -0
- data/config/routes.rb +2 -0
- data/db/migrate/00000000000100_create_countries.rb +15 -0
- data/db/migrate/00000000000200_create_universes.rb +11 -0
- data/db/migrate/00000000000300_create_geog_units.rb +9 -0
- data/db/migrate/00000000000400_create_measurement_types.rb +9 -0
- data/db/migrate/00000000000500_create_area_data_table_groups.rb +13 -0
- data/db/migrate/00000000000600_create_area_data_tables.rb +14 -0
- data/db/migrate/00000000000700_create_area_data_table_group_memberships.rb +12 -0
- data/db/migrate/00000000000800_create_tags.rb +9 -0
- data/db/migrate/00000000000900_create_topics.rb +9 -0
- data/db/migrate/00000000001000_create_variable_groups.rb +18 -0
- data/db/migrate/00000000001100_create_samples.rb +32 -0
- data/db/migrate/00000000001200_create_terrapop_samples.rb +12 -0
- data/db/migrate/00000000001300_create_variables.rb +52 -0
- data/db/migrate/00000000001400_create_country_levels.rb +17 -0
- data/db/migrate/00000000001450_variable_topics.rb +19 -0
- data/db/migrate/00000000001500_create_sample_geog_levels.rb +20 -0
- data/db/migrate/00000000002000_create_area_data_variables.rb +19 -0
- data/db/migrate/00000000002050_area_data_variable_topics.rb +22 -0
- data/db/migrate/00000000002100_create_sample_level_area_data_variables.rb +16 -0
- data/db/migrate/00000000002200_create_sample_level_area_variable_constructions.rb +12 -0
- data/db/migrate/00000000003000_create_maps.rb +22 -0
- data/db/migrate/00000000003100_create_boundaries.rb +14 -0
- data/db/migrate/00000000004000_create_geog_instances.rb +20 -0
- data/db/migrate/00000000004100_create_area_data_values.rb +18 -0
- data/db/migrate/00000000005000_create_sample_variables.rb +21 -0
- data/db/migrate/00000000005100_create_categories.rb +20 -0
- data/db/migrate/00000000005200_create_frequencies.rb +16 -0
- data/db/migrate/00000000005300_create_variable_sources.rb +16 -0
- data/db/migrate/00000000006000_create_user_roles.rb +8 -0
- data/db/migrate/00000000006100_create_users.rb +43 -0
- data/db/migrate/00000000006300_create_samples_tags.rb +15 -0
- data/db/migrate/00000000006400_create_terrapop_samples_tags.rb +15 -0
- data/db/migrate/00000000007000_create_raster_data_types.rb +9 -0
- data/db/migrate/00000000007050_create_resolutions.rb +8 -0
- data/db/migrate/00000000007100_create_raster_datasets.rb +26 -0
- data/db/migrate/00000000007200_create_raster_groups.rb +20 -0
- data/db/migrate/00000000007250_create_raster_groups_tags.rb +19 -0
- data/db/migrate/00000000007300_create_raster_variables.rb +28 -0
- data/db/migrate/00000000007325_create_raster_variable_group_memberships.rb +12 -0
- data/db/migrate/00000000007350_raster_variable_topics.rb +22 -0
- data/db/migrate/00000000007400_create_rasters.rb +22 -0
- data/db/migrate/00000000007500_create_raster_operations.rb +11 -0
- data/db/migrate/00000000010000_create_status_definitions.rb +8 -0
- data/db/migrate/00000000010050_create_extract_types.rb +10 -0
- data/db/migrate/00000000010100_create_build_statuses.rb +10 -0
- data/db/migrate/00000000010200_create_extract_requests.rb +14 -0
- data/db/migrate/00000000010300_create_extract_requests_labels_join_table.rb +20 -0
- data/db/migrate/00000000010400_create_extract_statuses.rb +13 -0
- data/db/migrate/00000000010500_create_request_geog_units.rb +13 -0
- data/db/migrate/00000000010600_create_request_terrapop_samples.rb +15 -0
- data/db/migrate/00000000011000_create_request_variable.rb +16 -0
- data/db/migrate/00000000011100_create_request_area_data_variables.rb +18 -0
- data/db/migrate/00000000011200_create_request_raster_variables.rb +20 -0
- data/db/migrate/00000000012000_create_raster_summary_functions.rb +130 -0
- data/db/migrate/00000000013000_create_terrapop_settings.rb +24 -0
- data/db/migrate/20121218190647_create_attached_variable_pointer.rb +18 -0
- data/db/migrate/20121218191609_add_attached_variable_pointer_id.rb +9 -0
- data/db/migrate/20121218205322_add_wants_attached.rb +9 -0
- data/db/migrate/20121219145142_add_attributes_to_terrapop_sample.rb +68 -0
- data/db/migrate/20130125155216_add_default_order_index_to_variables.rb +5 -0
- data/db/migrate/20130129204515_create_request_samples.rb +14 -0
- data/db/migrate/20130129204718_create_request_raster_datasets.rb +13 -0
- data/db/migrate/20130205195304_create_error_events.rb +10 -0
- data/db/migrate/20130206202006_add_country_index_for_continent.rb +8 -0
- data/db/migrate/20130207202628_create_raster_metadata.rb +13 -0
- data/db/migrate/20130208192415_add_extents_to_raster_dataset.rb +6 -0
- data/db/migrate/20130209182800_create_global_regions.rb +11 -0
- data/db/migrate/20130209182858_add_global_region_id_country.rb +13 -0
- data/db/migrate/20130211183221_add_type_to_global_regions.rb +5 -0
- data/db/migrate/20130212190940_create_global_region_types.rb +8 -0
- data/db/migrate/20130212192357_remove_classification_add_global_region_type_id_to_global_region.rb +13 -0
- data/db/migrate/20130304181054_add_code_to_boundaries.rb +5 -0
- data/db/migrate/20130305223407_add_ipumsi_user_flagto_users.rb +15 -0
- data/db/migrate/20130305224906_add_ipumsi_user_date_flagto_users.rb +11 -0
- data/db/migrate/20130308214537_create_request_sample_geog_levels.rb +14 -0
- data/db/migrate/20130312191726_create_raster_statistics.rb +23 -0
- data/db/migrate/20130312192100_create_raster_categories.rb +14 -0
- data/db/migrate/20130312192158_create_raster_category_statistics.rb +22 -0
- data/db/migrate/20130312203045_create_area_data_statistics.rb +15 -0
- data/db/migrate/20130401161222_add_summary_to_raster_variable.rb +11 -0
- data/db/migrate/20130402203508_add_global_region_sort_order_column.rb +8 -0
- data/db/migrate/20130402211553_add_weighted_to_terrapop_samples.rb +5 -0
- data/db/migrate/20130408022218_add_period_to_raster_datasets.rb +5 -0
- data/db/migrate/20130409161950_create_area_data_variable_constructions.rb +17 -0
- data/db/migrate/20130409162731_add_opcode_to_raster_operations.rb +5 -0
- data/db/migrate/20130412141109_update_raster_summary_functions.rb +39 -0
- data/db/migrate/20130415174823_create_insert_html_fragments.rb +13 -0
- data/db/migrate/20130415185523_create_common_variables.rb +13 -0
- data/db/migrate/20130416144840_add_columns_to_request_samples.rb +6 -0
- data/db/migrate/20130416150151_add_revision_of_column_to_extract_request.rb +8 -0
- data/db/migrate/20130416151200_add_file_type_to_extract_request.rb +5 -0
- data/db/migrate/20130416161440_add_column_general_detailed_selection_to_request_variables.rb +5 -0
- data/db/migrate/20130416170551_add_wants_case_selection_to_request_variable.rb +5 -0
- data/db/migrate/20130613185642_add_indexes_to_tables.rb +7 -0
- data/db/migrate/20130614193857_add_more_column_indexes.rb +11 -0
- data/db/migrate/20130618141508_create_raster_dataset_raster_data_types.rb +17 -0
- data/db/migrate/20130618185528_add_circa_to_raster_dataset.rb +5 -0
- data/db/migrate/20130619160555_create_raster_dataset_units.rb +9 -0
- data/db/migrate/20130619161934_create_raster_dataset_raster_dataset_units.rb +17 -0
- data/db/migrate/20130621184015_add_raster_dataset_process_summary.rb +8 -0
- data/db/migrate/20130621203809_add_source_information_column_to_raster_dataset.rb +5 -0
- data/db/migrate/20130624144333_add_temporal_extent_description_to_raster_dataset.rb +5 -0
- data/db/migrate/20130624154952_add_provider_to_raster_dataset.rb +5 -0
- data/db/migrate/20130624175342_add_use_constraints_column_to_raster_dataset.rb +5 -0
- data/db/migrate/20130624175632_drop_use_constraints_column_from_raster_dataset.rb +8 -0
- data/db/migrate/20130624192654_add_north_south_east_west_columns_to_raster_dataset.rb +8 -0
- data/db/migrate/20130625193303_add_sort_operation_identifier_to_raster_group.rb +5 -0
- data/db/migrate/20130702190659_add_raster_group_id_to_raster_variable.rb +9 -0
- data/db/migrate/20130708184410_create_country_comparabilities.rb +14 -0
- data/db/migrate/20130711191704_add_ipumsi_user_id_to_user.rb +8 -0
- data/db/migrate/20130712150252_add_data_settings_column_to_user.rb +8 -0
- data/db/migrate/20130719183620_add_visible_and_map_to_columns_to_raster_operations.rb +13 -0
- data/db/migrate/20130812194537_create_extract_request_submissions.rb +12 -0
- data/db/migrate/20130813165221_remove_ipums_user_id_from_user.rb +8 -0
- data/db/migrate/20130814161802_add_uuid_field_to_extract_request.rb +6 -0
- data/db/migrate/20130816204002_add_country_id_to_terrapop_sample.rb +8 -0
- data/db/migrate/20130816204214_add_year_to_terrapop_sample.rb +8 -0
- data/db/migrate/20130816205324_add_indexes_to_country.rb +9 -0
- data/db/migrate/20130819145802_add_foreign_key_to_terrapop_sample.rb +5 -0
- data/db/migrate/20130819155712_add_indexes_to_sample_level_area_data_variable.rb +5 -0
- data/db/migrate/20130819163013_add_short_country_name_to_terrapop_sample.rb +8 -0
- data/db/migrate/20130820195420_add_is_erf_to_country.rb +7 -0
- data/db/migrate/20130821221743_fix_raster_summary_function_num_classes.rb +39 -0
- data/db/migrate/20130830192340_add_more_user_registration_columns.rb +51 -0
- data/db/migrate/20130904205306_add_raster_variable_sort_order_weight.rb +8 -0
- data/db/migrate/20130912145522_add_localized_label_to_country_levels.rb +5 -0
- data/db/migrate/20130913194351_create_terrapop_raster_summary_caches.rb +27 -0
- data/db/migrate/20130916212710_add_year_range_to_map.rb +11 -0
- data/db/migrate/20130917154553_create_sample_designs.rb +14 -0
- data/db/migrate/20130924210303_add_raster_only_to_extract_request.rb +5 -0
- data/db/migrate/20131001220437_add_mnemonic_and_codebook_description_to_area_data_value.rb +11 -0
- data/db/migrate/20131002213443_add_ipums_email_sent_at_column.rb +8 -0
- data/db/migrate/20131020154130_remove_index_if_exists.rb +9 -0
- data/db/migrate/20131020170642_remove_ui_snippet_table_if_exists.rb +8 -0
- data/db/migrate/20131021204227_create_ui_text_snippet.rb +11 -0
- data/db/migrate/20131022190227_rename_table_fix_ui_text_snippets.rb +9 -0
- data/db/migrate/20131119154817_add_unique_index_on_uuid_on.rb +9 -0
- data/db/migrate/20131202161911_add_send_toi_rods_flag_to_extract_request.rb +13 -0
- data/db/migrate/20140122150020_add_geographic_levelto_geog_instance.rb +11 -0
- data/db/migrate/20140124184809_add_zip_file_location.rb +8 -0
- data/db/migrate/20140205205539_add_api_related_fields_to_user.rb +5 -0
- data/db/migrate/20140206213258_create_extract_request_error_events.rb +14 -0
- data/db/migrate/20140206222630_add_requesting_url_to_extract_request.rb +5 -0
- data/db/migrate/20140207153005_create_api_logs.rb +14 -0
- data/db/migrate/20140228182300_change_user_institutional_affiliation_to_bool.rb +50 -0
- data/db/migrate/20140312143201_add_start_and_end_time_and_total_time_to_extract_request.rb +7 -0
- data/db/migrate/20140318212913_remove_add_index_to_area_data_value.rb +12 -0
- data/db/migrate/20140319155819_add_long_mnemonic_to_area_data_value.rb +7 -0
- data/db/migrate/20140319200718_drop_mnemonic_column_area_data_value.rb +10 -0
- data/db/migrate/20140320184210_add_show_in_ui_column_in_raster_variable.rb +8 -0
- data/db/migrate/20140328150435_rename_revision_of_column_to_rabl_usable_column_name.rb +8 -0
- data/db/migrate/20140331142153_add_revision_of_column.rb +8 -0
- data/db/migrate/20140402181324_add_new_raster_summary_functions.rb +191 -0
- data/db/migrate/20140403185242_add_raster_variable_area_reference_id.rb +12 -0
- data/db/migrate/20140410145305_add_raster_area_column_to_terrapop_raster_summary_cache.rb +6 -0
- data/db/migrate/20140414170802_add_new_raster_summarization.rb +85 -0
- data/db/migrate/20140421150330_add_second_reference_column_to_raster_variable.rb +9 -0
- data/db/migrate/20140506165634_add_deactivated_at_and_deleted_at_to_user.rb +6 -0
- data/db/migrate/20140507142843_add_column_to_frequencies.rb +5 -0
- data/db/migrate/20140513143055_add_sample_geog_level_id_to_request_models.rb +11 -0
- data/db/migrate/20140521160554_create_links.rb +9 -0
- data/db/migrate/20140522214508_add_ipumsi_salt_and_ipumsi_crypted_password_to_user.rb +13 -0
- data/db/migrate/20140604192953_add_name_to_terrapop_setting.rb +47 -0
- data/db/migrate/20140609163907_create_variable_availability_caches.rb +9 -0
- data/db/migrate/20140609210447_add_foreign_index_to_variable_availability_cache.rb +8 -0
- data/db/migrate/20140609213300_create_area_data_variable_availability_caches.rb +13 -0
- data/db/migrate/20140610135849_create_nhgis_metadata_stores.rb +30 -0
- data/db/migrate/20140610211138_add_dataset_id_to_nhgis_metadata.rb +5 -0
- data/db/migrate/20140611181543_add_replicate_weight_variable_id_to_variables.rb +5 -0
- data/db/migrate/20140618200741_add_key_column_toraster_variable_group_memberships.rb +7 -0
- data/db/migrate/20140618202053_add_key_column_toraster_variable_group_memberships2.rb +8 -0
- data/db/migrate/20140701134952_create_system_statistics.rb +12 -0
- data/db/migrate/20140804161242_add_fields_to_terrapop_sample.rb +7 -0
- data/db/migrate/20140806173750_add_geometry_column_to_boundaries.rb +5 -0
- data/db/migrate/20140821205836_add_git_hash_field_to_extract_request.rb +5 -0
- data/db/migrate/20140822140106_create_map_units.rb +9 -0
- data/db/migrate/20140822140358_create_map_unit_raster_datasets.rb +17 -0
- data/db/migrate/20140822143517_redefine_short_unit_on_map_unit_to_longer_string.rb +5 -0
- data/db/migrate/20140825135403_add_finger_print_hash_to_maps.rb +5 -0
- data/db/migrate/20140826163359_add_source_field_to_terrapop_sample.rb +8 -0
- data/db/migrate/20140827153014_add_microdata_file_size_to_sample.rb +5 -0
- data/db/migrate/20140828161647_add_raster_band_index_to_raster_categories.rb +5 -0
- data/db/migrate/20140828162650_add_post_gis_raster_output_indicator_to_raster_variable.rb +5 -0
- data/db/migrate/20140829150251_create_raster_dataset_raster_variables.rb +17 -0
- data/db/migrate/20140902194529_add_raster_band_to_raster_dataset_model.rb +7 -0
- data/db/migrate/20140903202609_create_heartbeats.rb +9 -0
- data/db/migrate/20140903204113_create_heartbeat_pulse.rb +10 -0
- data/db/migrate/20140904164247_create_raster_raster_variables.rb +16 -0
- data/db/migrate/20140908193007_add_area_level_rasterization_functions.rb +103 -0
- data/db/migrate/20140908194021_create_area_data_rasters.rb +39 -0
- data/db/migrate/20140909143933_rename_valid_column_on_area_data_raster.rb +5 -0
- data/db/migrate/20140911201639_add_columns_to_area_data_raster.rb +11 -0
- data/db/migrate/20140911211923_alter_area_data_raster_indexes.rb +12 -0
- data/db/migrate/20140919144305_create_raster_variable_classifications.rb +29 -0
- data/db/migrate/20140925140810_add_other_raster_variables_to_raster_variable_classification.rb +9 -0
- data/db/migrate/20140925172245_add_grouping_indicator_to_raster_classifications.rb +5 -0
- data/db/migrate/20140925175157_add_classification_indicator_to_raster_variable.rb +5 -0
- data/db/migrate/20140930142006_remove_boundary_id_from_geog_instance.rb +6 -0
- data/db/migrate/20141003164150_add_terrapop_sample_id_to_map_and_geog_instance.rb +11 -0
- data/db/migrate/20141029202813_add_nhgis_dat_file_to_sample_geog_level.rb +5 -0
- data/db/migrate/20141029204521_add_columns_to_sample_level_area_data_variable.rb +6 -0
- data/db/migrate/20141104212652_create_categorical_raster_summarization.rb +39 -0
- data/db/migrate/20141105202744_add_margin_file_to_sample_geog_level.rb +5 -0
- data/db/migrate/20141105205347_add_margin_field_to_area_data_value.rb +5 -0
- data/db/migrate/20141105205607_add_join_fields_to_sample_geog_level.rb +8 -0
- data/db/migrate/20141202180411_add_new_categorical_summarization_function.rb +62 -0
- data/db/migrate/20141212172044_add_continuous_raster_summarization0.rb +51 -0
- data/db/migrate/20141212195611_add_indexes_to_boundaries.rb +10 -0
- data/db/migrate/20141212202521_add_indexes_to_frequencies.rb +7 -0
- data/db/migrate/20141229150743_add_special_value_to_area_data_value.rb +5 -0
- data/db/migrate/20141230153550_add_field_to_global_regions.rb +8 -0
- data/db/migrate/20150107142518_add_restriction_indicated_to_sample.rb +5 -0
- data/db/migrate/20150114161817_add_raster_to_tiff_function.rb +35 -0
- data/db/migrate/20150115204303_add_hide_nhgis_datasets_to_users.rb +11 -0
- data/db/migrate/20150126192918_add_new_gli_post_gis_functions.rb +99 -0
- data/db/migrate/20150126223419_add_short_label_to_terrapop_samples.rb +11 -0
- data/db/migrate/20150127172953_add_another_raster_summarization_function.rb +44 -0
- data/db/migrate/20150130163215_new_glc_summarization_function.rb +40 -0
- data/db/migrate/20150211221354_create_cache_items.rb +23 -0
- data/db/migrate/20150212223011_add_microdata_access_expired_date_to_users.rb +11 -0
- data/db/migrate/20150217221940_add_new_band_aware_categorical_to_binary_summarization.rb +177 -0
- data/db/migrate/20150302145459_removeuse_postgis_procedure_for_geotiff.rb +5 -0
- data/db/migrate/20150313194752_add_color_map_to_tiff_output.rb +34 -0
- data/db/migrate/20150313202158_add_color_map_to_jpeg_output.rb +34 -0
- data/db/migrate/20150318183314_add_non_color_map_cookie_cutter_functions.rb +65 -0
- data/db/migrate/20150324160629_add_categorical_multi_band_summarization.rb +62 -0
- data/db/migrate/20150324161827_add_index_to_rasters_raster_variable_id.rb +5 -0
- data/db/migrate/20150327203257_add_band_to_terrapop_raster_summary_cache.rb +5 -0
- data/db/migrate/20150331142232_add_xml_field_to_map.rb +5 -0
- data/db/migrate/20150331153703_add_new_continous_summarization.rb +38 -0
- data/db/migrate/20150409153145_categorical_to_binary_as_raster.rb +49 -0
- data/db/migrate/20150413204130_generic_categorical_to_binary_raster_output_function.rb +92 -0
- data/db/migrate/20150416133743_ratio_area_level_data_to_raster_function.rb +55 -0
- data/db/migrate/20150416143838_projection_function_for_single_band_rasters.rb +27 -0
- data/db/migrate/20150419203614_add_raster_dataset_to_terrapop_raster_summary_cache.rb +12 -0
- data/db/migrate/20150419232521_add_raster_dataset_to_request_raster_variable.rb +9 -0
- data/db/migrate/20150427163939_create_single_binary_from_categorical_to_tiff_function.rb +51 -0
- data/db/migrate/20150518200435_add_new_binary_cookie_cutter_functions.rb +95 -0
- data/db/migrate/20150520195145_revised_glc_binary_summarization_function.rb +64 -0
- data/db/migrate/20150526205918_new_categorical_to_binary_summarization.rb +72 -0
- data/db/migrate/20150527144243_even_newer_glc_binary_function.rb +79 -0
- data/db/migrate/20150527191853_add_even_newer_glc_category_to_binary_function.rb +74 -0
- data/db/migrate/20150528141915_yancat_to_bin_summarization_function.rb +66 -0
- data/db/migrate/20150529182542_add_indexes_to_geog_instances.rb +9 -0
- data/db/migrate/20150601160855_drop_area_data_variable_availability_caches.rb +5 -0
- data/db/migrate/20150625150152_add_geog_instance_f_key_on_boundaries.rb +5 -0
- data/db/migrate/20150626144305_geog_instance_geog_code_wider.rb +6 -0
- data/db/migrate/20150709161201_glc_summarization_version5.rb +79 -0
- data/db/migrate/20150713165442_glc_summarization_version6.rb +82 -0
- data/db/migrate/20150713185652_tp_jpeg_raster_clip_color_map_v2.rb +34 -0
- data/db/migrate/20150716182438_new_rasters_table.rb +18 -0
- data/db/migrate/20150716184828_new_stored_procedures_for_new_rasters.rb +70 -0
- data/db/migrate/20150721161943_remove_ownership_statement_from_function.rb +69 -0
- data/db/migrate/20150727134942_rename_rasters_new_to_new_rasters.rb +19 -0
- data/db/migrate/20150727135614_update_table_name_in_make_jpeg2.rb +70 -0
- data/db/migrate/20150727143159_jpeg_clip_experiment.rb +36 -0
- data/db/migrate/20150727145556_create_new_tiff_raster_clip_with_buffer.rb +34 -0
- data/db/migrate/20150727161508_update_table_name_in_make_jpeg2_part_deux.rb +77 -0
- data/db/migrate/20150727193403_drop_rasters_new.rb +5 -0
- data/db/migrate/20150728184718_make_jpeg2_part_deux.rb +70 -0
- data/db/migrate/20150728214344_correct_new_rasters_table_in_new_make_jpeg2_function.rb +79 -0
- data/db/migrate/20150729144526_even_more_correct_new_rasters_table_in_new_make_jpeg2_function.rb +78 -0
- data/db/migrate/20150729160936_fixingterrapop_reclassify_categorical_raster_to_binary_summariz_v3.rb +68 -0
- data/db/migrate/20150730141036_adjust_jpeg_clip_for_categorical.rb +67 -0
- data/db/migrate/20150730153216_ststandardize_terrapop_reclassify_categorical_raster_to_binary_summariz_v3.rb +69 -0
- data/db/migrate/20150730163446_add_origin_to_extract_requests.rb +5 -0
- data/db/migrate/20150731151304_consistent_return_fieldsterrapop_gli_yield_areal_summarization.rb +99 -0
- data/db/migrate/20150731192327_add_boundary_only_field_to_terrapop_sample.rb +5 -0
- data/db/migrate/20150803213048_add_function_to_detect_boundaries_that_wrap_globe.rb +50 -0
- data/db/migrate/20150814154127_add_processing_flag_to_extract_request.rb +5 -0
- data/db/migrate/20150814165605_add_colormapped_categorical_to_binary_jpeg_cookie_cutteringizing_function.rb +49 -0
- data/db/migrate/20150814183708_around_the_world_wrap_a_raster_function.rb +157 -0
- data/db/migrate/20150910194333_add_extract_grouping_field_to_extract_request.rb +5 -0
- data/db/migrate/20150915194808_drop_sessions_table.rb +5 -0
- data/db/migrate/20150915215426_add_sessions_table.rb +12 -0
- data/db/migrate/20151009203606_create_sample_detail_groups.rb +8 -0
- data/db/migrate/20151009203855_create_sample_detail_fields.rb +13 -0
- data/db/migrate/20151009204052_create_sample_detail_values.rb +12 -0
- data/db/migrate/20151016152953_add_indexes_to_area_data_values.rb +7 -0
- data/db/migrate/20151023160555_add_data_to_extract_requests.rb +8 -0
- data/db/migrate/20151026155953_rename_description_add_title_to_extract_requests.rb +8 -0
- data/db/migrate/20151029144017_create_raster_dataset_groups.rb +9 -0
- data/db/migrate/20151029144147_add_raster_dataset_group_to_raster_dataset.rb +9 -0
- data/db/migrate/20151029182802_add_mnemonic_to_raster_dataset_group.rb +5 -0
- data/db/migrate/20151029184642_change_field_type_on_raster_dataset_group.rb +5 -0
- data/db/migrate/20151029210539_remove_unnecessary_fields_from_terrapop_sample.rb +60 -0
- data/db/migrate/20151102205254_create_data_artifacts.rb +17 -0
- data/db/migrate/20151102211601_add_json_field_to_extract_data_artifacts.rb +8 -0
- data/db/migrate/20151103152754_add_file_name_field_to_extract_request.rb +5 -0
- data/db/migrate/20151106155249_add_submitted_at_to_extract_request.rb +5 -0
- data/db/migrate/20151110204826_add_terra_pop_build_number_to_extract_request.rb +12 -0
- data/db/migrate/20151119213428_create_area_data_raster_variable_mnemonic_lookups.rb +18 -0
- data/db/migrate/20151120140757_create_extract_request_area_data_raster_variable_mnemonic_lookups.rb +16 -0
- data/db/migrate/20151130212011_add_new_raster_summarization_v7.rb +90 -0
- data/lib/tasks/terrapop_models_tasks.rake +4 -0
- data/lib/terrapop_models.rb +4 -0
- data/lib/terrapop_models/engine.rb +13 -0
- data/lib/terrapop_models/version.rb +3 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +68 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +78 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/assets.rb +8 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/config/secrets.yml +22 -0
- data/test/dummy/log/development.log +62 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/terrapop_models_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- metadata +597 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
class ProjectionFunctionForSingleBandRasters < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql1 =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_projection_number_from_single_band_raster(raster_id bigint)
|
|
5
|
+
RETURNS integer AS
|
|
6
|
+
$BODY$
|
|
7
|
+
DECLARE prj_value integer;
|
|
8
|
+
BEGIN
|
|
9
|
+
WITH transformation as
|
|
10
|
+
(
|
|
11
|
+
SELECT ST_SRID(r.rast) AS prj_value
|
|
12
|
+
FROM rasters r
|
|
13
|
+
WHERE r.raster_variable_id = raster_id
|
|
14
|
+
LIMIT 1
|
|
15
|
+
)
|
|
16
|
+
SELECT t.prj_value INTO prj_value FROM transformation t;
|
|
17
|
+
|
|
18
|
+
RETURN prj_value;
|
|
19
|
+
END;
|
|
20
|
+
$BODY$
|
|
21
|
+
LANGUAGE 'plpgsql';
|
|
22
|
+
SQL
|
|
23
|
+
|
|
24
|
+
execute(sql1)
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class AddRasterDatasetToTerrapopRasterSummaryCache < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
add_column :terrapop_raster_summary_caches, :raster_dataset_id, :bigint
|
|
5
|
+
|
|
6
|
+
add_index :terrapop_raster_summary_caches, :raster_dataset_id
|
|
7
|
+
|
|
8
|
+
foreign_key :terrapop_raster_summary_caches, :raster_dataset_id
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
class AddRasterDatasetToRequestRasterVariable < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
add_column :request_raster_variables, :raster_dataset_id, :bigint
|
|
5
|
+
add_index :request_raster_variables, :raster_dataset_id
|
|
6
|
+
foreign_key :request_raster_variables, :raster_dataset_id
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
class CreateSingleBinaryFromCategoricalToTiffFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
sql0 =<<-SQL
|
|
5
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_tiff(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer DEFAULT 1)
|
|
6
|
+
RETURNS bytea AS
|
|
7
|
+
$BODY$
|
|
8
|
+
DECLARE ret_tiff bytea;
|
|
9
|
+
BEGIN
|
|
10
|
+
|
|
11
|
+
WITH lookup AS
|
|
12
|
+
(
|
|
13
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
14
|
+
FROM raster_variables WHERE id IN (
|
|
15
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
16
|
+
from raster_variable_classifications
|
|
17
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
18
|
+
), cat_rast as
|
|
19
|
+
(
|
|
20
|
+
SELECT rv.second_area_reference_id as cat_id
|
|
21
|
+
FROM raster_variables rv
|
|
22
|
+
WHERE rv.id = rasters_id
|
|
23
|
+
),transformation as
|
|
24
|
+
(
|
|
25
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
26
|
+
FROM cat_rast c, rasters r
|
|
27
|
+
WHERE r.raster_variable_id = c.cat_id
|
|
28
|
+
LIMIT 1
|
|
29
|
+
), polygon as
|
|
30
|
+
(
|
|
31
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
32
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
33
|
+
FROM transformation t, sample_geog_levels sgl
|
|
34
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
35
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
36
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
37
|
+
)
|
|
38
|
+
SELECT ST_AsTiff(ST_union(ST_Reclass(ST_Clip(r.rast, bnd_num,p.geom, TRUE),1,l.exp, '8BUI',0)), 'LZW', terrapop_projection_number_from_stacked_raster(rasters_id)) into ret_tiff
|
|
39
|
+
FROM lookup l, cat_rast c, polygon p inner join rasters r on ST_Intersects(r.rast,p.geom)
|
|
40
|
+
WHERE r.raster_variable_id = (c.cat_id);
|
|
41
|
+
RETURN ret_tiff;
|
|
42
|
+
END;
|
|
43
|
+
|
|
44
|
+
$BODY$
|
|
45
|
+
LANGUAGE 'plpgsql';
|
|
46
|
+
SQL
|
|
47
|
+
|
|
48
|
+
execute(sql0)
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
class AddNewBinaryCookieCutterFunctions < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql0 =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_tiff_colormap(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer DEFAULT 1, colormap TEXT DEFAULT 'greyscale')
|
|
5
|
+
RETURNS bytea AS
|
|
6
|
+
$BODY$
|
|
7
|
+
DECLARE ret_tiff bytea;
|
|
8
|
+
BEGIN
|
|
9
|
+
|
|
10
|
+
WITH lookup AS
|
|
11
|
+
(
|
|
12
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
13
|
+
FROM raster_variables WHERE id IN (
|
|
14
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
15
|
+
from raster_variable_classifications
|
|
16
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
17
|
+
), cat_rast as
|
|
18
|
+
(
|
|
19
|
+
SELECT rv.second_area_reference_id as cat_id
|
|
20
|
+
FROM raster_variables rv
|
|
21
|
+
WHERE rv.id = rasters_id
|
|
22
|
+
),transformation as
|
|
23
|
+
(
|
|
24
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
25
|
+
FROM cat_rast c, rasters r
|
|
26
|
+
WHERE r.raster_variable_id = c.cat_id
|
|
27
|
+
LIMIT 1
|
|
28
|
+
), polygon as
|
|
29
|
+
(
|
|
30
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
31
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
32
|
+
FROM transformation t, sample_geog_levels sgl
|
|
33
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
34
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
35
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
36
|
+
)
|
|
37
|
+
SELECT ST_AsTiff(ST_ColorMap(ST_union(ST_Reclass(ST_Clip(r.rast, bnd_num,p.geom, TRUE),1,l.exp, '8BUI',0)), 1, colormap), 'LZW', terrapop_projection_number_from_stacked_raster(rasters_id)) into ret_tiff
|
|
38
|
+
FROM lookup l, cat_rast c, polygon p inner join rasters r on ST_Intersects(r.rast,p.geom)
|
|
39
|
+
WHERE r.raster_variable_id = (c.cat_id);
|
|
40
|
+
RETURN ret_tiff;
|
|
41
|
+
END;
|
|
42
|
+
|
|
43
|
+
$BODY$
|
|
44
|
+
LANGUAGE 'plpgsql';
|
|
45
|
+
SQL
|
|
46
|
+
|
|
47
|
+
execute(sql0)
|
|
48
|
+
|
|
49
|
+
sql1 =<<-SQL
|
|
50
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_jpeg_colormap(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer DEFAULT 1, colormap TEXT DEFAULT 'greyscale')
|
|
51
|
+
RETURNS bytea AS
|
|
52
|
+
$BODY$
|
|
53
|
+
DECLARE ret_tiff bytea;
|
|
54
|
+
BEGIN
|
|
55
|
+
|
|
56
|
+
WITH lookup AS
|
|
57
|
+
(
|
|
58
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
59
|
+
FROM raster_variables WHERE id IN (
|
|
60
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
61
|
+
from raster_variable_classifications
|
|
62
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
63
|
+
), cat_rast as
|
|
64
|
+
(
|
|
65
|
+
SELECT rv.second_area_reference_id as cat_id
|
|
66
|
+
FROM raster_variables rv
|
|
67
|
+
WHERE rv.id = rasters_id
|
|
68
|
+
),transformation as
|
|
69
|
+
(
|
|
70
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
71
|
+
FROM cat_rast c, rasters r
|
|
72
|
+
WHERE r.raster_variable_id = c.cat_id
|
|
73
|
+
LIMIT 1
|
|
74
|
+
), polygon as
|
|
75
|
+
(
|
|
76
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
77
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
78
|
+
FROM transformation t, sample_geog_levels sgl
|
|
79
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
80
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
81
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
82
|
+
)
|
|
83
|
+
SELECT ST_AsJPEG(ST_union(ST_Reclass(ST_Clip(r.rast, bnd_num,p.geom, TRUE),1,l.exp, '8BUI',0)), 1) into ret_tiff
|
|
84
|
+
FROM lookup l, cat_rast c, polygon p inner join rasters r on ST_Intersects(r.rast,p.geom)
|
|
85
|
+
WHERE r.raster_variable_id = (c.cat_id);
|
|
86
|
+
RETURN ret_tiff;
|
|
87
|
+
END;
|
|
88
|
+
|
|
89
|
+
$BODY$
|
|
90
|
+
LANGUAGE 'plpgsql';
|
|
91
|
+
SQL
|
|
92
|
+
|
|
93
|
+
execute(sql1)
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
class RevisedGlcBinarySummarizationFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_glc_binary_summarization_v3(IN sample_geog_lvl_id bigint, IN rasters_id bigint)
|
|
5
|
+
RETURNS TABLE(geog_instance_id bigint, geog_instance_label character varying, binary_area double precision, total_area double precision, percent_area double precision) AS
|
|
6
|
+
$BODY$
|
|
7
|
+
BEGIN
|
|
8
|
+
RETURN QUERY
|
|
9
|
+
with bounds as
|
|
10
|
+
(
|
|
11
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as gid, gi.label as label, gi.code as geog_instance_code, bound.geog::geometry as geom
|
|
12
|
+
FROM sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
13
|
+
where sgl.id = sample_geog_lvl_id group by sgl.id, gi.id, gi.label, gi.code, bound.geog
|
|
14
|
+
),
|
|
15
|
+
|
|
16
|
+
bin_rast as
|
|
17
|
+
(
|
|
18
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
19
|
+
FROM bounds b inner join rasters r on ST_Intersects(r.rast, b.geom)
|
|
20
|
+
where r.raster_variable_id = rasters_id group by b.gid, b.label
|
|
21
|
+
),
|
|
22
|
+
|
|
23
|
+
area_reference_id as (select rv.area_reference_id as id from raster_variables rv where rv.id = rasters_id limit 1),
|
|
24
|
+
|
|
25
|
+
area_ref_rast as
|
|
26
|
+
(
|
|
27
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
28
|
+
FROM area_reference_id a, bounds b inner join rasters r on ST_Intersects(r.rast, b.geom)
|
|
29
|
+
where r.raster_variable_id = a.id group by b.gid, b.label
|
|
30
|
+
),
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
binary_area as
|
|
34
|
+
(
|
|
35
|
+
select b.gid, b.label, (ST_SummaryStats(ST_MapAlgebra(b.rast, 1, a.rast, 1, '[rast1]*[rast2]'))).sum as binary_area
|
|
36
|
+
FROM bin_rast b inner join area_ref_rast a on b.gid = a.gid
|
|
37
|
+
group by b.gid, b.label, a.rast, b.rast
|
|
38
|
+
),
|
|
39
|
+
|
|
40
|
+
total_area as
|
|
41
|
+
(
|
|
42
|
+
SELECT a.gid as gid, a.label as label, (ST_SummaryStats(a.rast, true)).sum as total_area
|
|
43
|
+
FROM area_ref_rast a group by a.gid, a.label, a.rast order by a.label
|
|
44
|
+
),
|
|
45
|
+
|
|
46
|
+
percent_area as
|
|
47
|
+
(
|
|
48
|
+
select a.gid as gid, a.label as label, a.binary_area/b.total_area as percent_area
|
|
49
|
+
from binary_area a, total_area b where a.gid = b.gid order by a.label
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
SELECT b.gid, b.label, b.binary_area, t.total_area, p.percent_area
|
|
53
|
+
FROM binary_area b inner join total_area t on b.gid = t.gid inner join percent_area p on t.gid = p.gid;
|
|
54
|
+
|
|
55
|
+
END;
|
|
56
|
+
$BODY$
|
|
57
|
+
LANGUAGE plpgsql VOLATILE
|
|
58
|
+
COST 100
|
|
59
|
+
ROWS 1000;
|
|
60
|
+
SQL
|
|
61
|
+
|
|
62
|
+
execute(sql)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
class NewCategoricalToBinarySummarization < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
sql =<<-SQL
|
|
5
|
+
CREATE OR REPLACE FUNCTION terrapop_reclassify_categorical_raster_to_binary_summariz_v2(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer)
|
|
6
|
+
RETURNS TABLE(geog_instance bigint, geog_instance_label character varying, pixel_count bigint, binary_area double precision, percent_area double precision, total_area double precision) AS
|
|
7
|
+
$BODY$
|
|
8
|
+
|
|
9
|
+
BEGIN
|
|
10
|
+
RETURN QUERY
|
|
11
|
+
|
|
12
|
+
WITH lookup AS
|
|
13
|
+
(
|
|
14
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
15
|
+
FROM raster_variables WHERE id IN (
|
|
16
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
17
|
+
from raster_variable_classifications
|
|
18
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
19
|
+
), cat_rast as
|
|
20
|
+
(
|
|
21
|
+
SELECT rv.area_reference_id as area_id, rv.second_area_reference_id as cat_id
|
|
22
|
+
FROM raster_variables rv
|
|
23
|
+
WHERE rv.id = rasters_id
|
|
24
|
+
),transformation as
|
|
25
|
+
(
|
|
26
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
27
|
+
FROM cat_rast c, rasters r
|
|
28
|
+
WHERE r.raster_variable_id = c.cat_id
|
|
29
|
+
LIMIT 1
|
|
30
|
+
), polygon as
|
|
31
|
+
(
|
|
32
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
33
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom, t.prj_value
|
|
34
|
+
FROM transformation t, sample_geog_levels sgl
|
|
35
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
36
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
37
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
38
|
+
), raster_tiles as
|
|
39
|
+
(
|
|
40
|
+
SELECT rast, raster_variable_id FROM rasters r, cat_rast c WHERE r.raster_variable_id = c.cat_id
|
|
41
|
+
), r_table as
|
|
42
|
+
(
|
|
43
|
+
SELECT p.geog_instance_id, p.geog_instance_label, ST_Union(ST_Reclass(ST_Clip(r.rast, bnd_num, ST_Transform(p.geom, p.prj_value), TRUE),1,l.exp, '8BUI',0)) as rast
|
|
44
|
+
FROM lookup l, cat_rast c, polygon p inner join raster_tiles r on ST_Intersects(r.rast, ST_Transform(p.geom, p.prj_value))
|
|
45
|
+
WHERE r.raster_variable_id = (c.cat_id)
|
|
46
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
47
|
+
), a_table as
|
|
48
|
+
(
|
|
49
|
+
SELECT p.geog_instance_id, p.geog_instance_label, ST_union(ST_Clip(r.rast, ST_Transform(p.geom, p.prj_value))) as rast
|
|
50
|
+
FROM lookup l, cat_rast c, polygon p inner join raster_tiles r on ST_Intersects(r.rast, ST_Transform(p.geom, p.prj_value))
|
|
51
|
+
WHERE r.raster_variable_id = (c.area_id)
|
|
52
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
53
|
+
), calc as
|
|
54
|
+
(
|
|
55
|
+
SELECT r.geog_instance_id, r.geog_instance_label, (ST_SummaryStats(r.rast)).*, (ST_SummaryStats(a.rast)).sum as total_area,
|
|
56
|
+
(ST_SummaryStats(ST_MapAlgebra(r.rast, 1, a.rast, 1, '[rast1]*[rast2]', '32BUI'))).sum as binary_area
|
|
57
|
+
FROM r_table r inner join a_table a on (r.geog_instance_id = a.geog_instance_id)
|
|
58
|
+
)
|
|
59
|
+
SELECT c.geog_instance_id, c.geog_instance_label, c.count as pixel_count, c.binary_area,
|
|
60
|
+
c.binary_area / c.total_area as percent_area, c.total_area as total_area
|
|
61
|
+
FROM calc c;
|
|
62
|
+
|
|
63
|
+
END;
|
|
64
|
+
|
|
65
|
+
$BODY$
|
|
66
|
+
LANGUAGE 'plpgsql';
|
|
67
|
+
SQL
|
|
68
|
+
|
|
69
|
+
execute(sql)
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
class EvenNewerGlcBinaryFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_glc_binary_summarization_v4(IN sample_geog_lvl_id bigint, IN rasters_id bigint)
|
|
5
|
+
RETURNS TABLE(geog_instance_id bigint, geog_instance_label character varying, binary_area double precision, total_area double precision, percent_area double precision) AS
|
|
6
|
+
$BODY$
|
|
7
|
+
BEGIN
|
|
8
|
+
RETURN QUERY
|
|
9
|
+
WITH srid as
|
|
10
|
+
|
|
11
|
+
(
|
|
12
|
+
|
|
13
|
+
SELECT st_srid(r.rast) as srid FROM rasters r
|
|
14
|
+
|
|
15
|
+
where r.raster_variable_id = rasters_id
|
|
16
|
+
|
|
17
|
+
limit 1
|
|
18
|
+
|
|
19
|
+
),
|
|
20
|
+
|
|
21
|
+
bounds as
|
|
22
|
+
(
|
|
23
|
+
|
|
24
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as gid, gi.label as label, gi.code as geog_instance_code, st_transform(bound.geog::geometry, srid.srid) as geom
|
|
25
|
+
|
|
26
|
+
FROM srid, sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
27
|
+
|
|
28
|
+
where sgl.id = sample_geog_lvl_id group by sgl.id, gi.id, gi.label, gi.code, bound.geog
|
|
29
|
+
|
|
30
|
+
),
|
|
31
|
+
|
|
32
|
+
bin_rast as
|
|
33
|
+
(
|
|
34
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
35
|
+
FROM bounds b inner join rasters r on ST_Intersects(r.rast, b.geom)
|
|
36
|
+
where r.raster_variable_id = rasters_id group by b.gid, b.label
|
|
37
|
+
),
|
|
38
|
+
|
|
39
|
+
area_reference_id as (select rv.area_reference_id as id from raster_variables rv where rv.id = rasters_id limit 1),
|
|
40
|
+
|
|
41
|
+
area_ref_rast as
|
|
42
|
+
(
|
|
43
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
44
|
+
FROM area_reference_id a, bounds b inner join rasters r on ST_Intersects(r.rast, b.geom)
|
|
45
|
+
where r.raster_variable_id = a.id group by b.gid, b.label
|
|
46
|
+
),
|
|
47
|
+
|
|
48
|
+
binary_area as
|
|
49
|
+
(
|
|
50
|
+
select b.gid, b.label, (ST_SummaryStats(ST_MapAlgebra(b.rast, 1, a.rast, 1, '[rast1]*[rast2]'))).sum as binary_area
|
|
51
|
+
FROM bin_rast b inner join area_ref_rast a on b.gid = a.gid
|
|
52
|
+
group by b.gid, b.label, a.rast, b.rast
|
|
53
|
+
),
|
|
54
|
+
|
|
55
|
+
total_area as
|
|
56
|
+
(
|
|
57
|
+
SELECT a.gid as gid, a.label as label, (ST_SummaryStats(a.rast, true)).sum as total_area
|
|
58
|
+
FROM area_ref_rast a group by a.gid, a.label, a.rast order by a.label
|
|
59
|
+
),
|
|
60
|
+
|
|
61
|
+
percent_area as
|
|
62
|
+
(
|
|
63
|
+
select a.gid as gid, a.label as label, a.binary_area/b.total_area as percent_area
|
|
64
|
+
from binary_area a, total_area b where a.gid = b.gid order by a.label
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
SELECT b.gid, b.label, b.binary_area, t.total_area, p.percent_area
|
|
68
|
+
FROM binary_area b inner join total_area t on b.gid = t.gid inner join percent_area p on t.gid = p.gid;
|
|
69
|
+
|
|
70
|
+
END;
|
|
71
|
+
$BODY$
|
|
72
|
+
LANGUAGE plpgsql VOLATILE
|
|
73
|
+
COST 100
|
|
74
|
+
ROWS 1000;
|
|
75
|
+
SQL
|
|
76
|
+
|
|
77
|
+
execute(sql)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
class AddEvenNewerGlcCategoryToBinaryFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_reclassify_categorical_raster_to_binary_summariz_v3(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer)
|
|
5
|
+
RETURNS TABLE(geog_instance bigint, geog_instance_label character varying, pixel_count bigint, binary_area double precision, percent_area double precision, total_area double precision) AS
|
|
6
|
+
$BODY$
|
|
7
|
+
|
|
8
|
+
BEGIN
|
|
9
|
+
RETURN QUERY
|
|
10
|
+
WITH lookup AS
|
|
11
|
+
(
|
|
12
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
13
|
+
FROM raster_variables
|
|
14
|
+
WHERE id IN (
|
|
15
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
16
|
+
from raster_variable_classifications
|
|
17
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
18
|
+
),
|
|
19
|
+
|
|
20
|
+
cat_rast as
|
|
21
|
+
(
|
|
22
|
+
SELECT rv.area_reference_id as area_id, rv.second_area_reference_id as cat_id FROM raster_variables rv WHERE rv.id = rasters_id),
|
|
23
|
+
transformation as (SELECT ST_SRID(r.rast) as prj_value FROM cat_rast c, rasters r WHERE r.raster_variable_id = c.cat_id LIMIT 1),
|
|
24
|
+
|
|
25
|
+
polygon as
|
|
26
|
+
(
|
|
27
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label, gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
28
|
+
FROM transformation t, sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
29
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
30
|
+
),
|
|
31
|
+
|
|
32
|
+
all_r_table as
|
|
33
|
+
(
|
|
34
|
+
SELECT r.rast as rast
|
|
35
|
+
FROM rasters r, cat_rast c
|
|
36
|
+
WHERE r.raster_variable_id = (c.cat_id)
|
|
37
|
+
),
|
|
38
|
+
|
|
39
|
+
r_table as
|
|
40
|
+
(
|
|
41
|
+
SELECT p.geog_instance_id, p.geog_instance_label, ST_union(ST_Reclass(ST_Clip(r.rast, bnd_num ,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
|
|
42
|
+
FROM lookup l, polygon p inner join all_r_table r on ST_Intersects(r.rast, p.geom)
|
|
43
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
44
|
+
),
|
|
45
|
+
|
|
46
|
+
all_a_table as
|
|
47
|
+
(
|
|
48
|
+
SELECT r.rast as rast
|
|
49
|
+
FROM rasters r, cat_rast c
|
|
50
|
+
WHERE r.raster_variable_id = (c.area_id)
|
|
51
|
+
),
|
|
52
|
+
|
|
53
|
+
a_table as
|
|
54
|
+
(
|
|
55
|
+
SELECT p.geog_instance_id, p.geog_instance_label, ST_union(ST_Clip(r.rast, p.geom)) as rast
|
|
56
|
+
FROM lookup l, cat_rast c, polygon p inner join all_a_table r on ST_Intersects(r.rast, p.geom)
|
|
57
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
58
|
+
),
|
|
59
|
+
|
|
60
|
+
calc as
|
|
61
|
+
(
|
|
62
|
+
SELECT r.geog_instance_id, r.geog_instance_label, (ST_SummaryStats(r.rast)).*, (ST_SummaryStats(a.rast)).sum as total_area,
|
|
63
|
+
(ST_SummaryStats(ST_MapAlgebra(r.rast, 1, a.rast, 1, '[rast1]*[rast2]', '32BUI'))).sum as binary_area
|
|
64
|
+
FROM r_table r inner join a_table a on (r.geog_instance_id = a.geog_instance_id)
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
SELECT c.geog_instance_id, c.geog_instance_label, c.count as pixel_count, c.binary_area, c.binary_area / c.total_area as percent_area, c.total_area as total_area FROM calc c;
|
|
68
|
+
END;
|
|
69
|
+
|
|
70
|
+
$BODY$
|
|
71
|
+
LANGUAGE 'plpgsql';
|
|
72
|
+
SQL
|
|
73
|
+
end
|
|
74
|
+
end
|