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,66 @@
|
|
|
1
|
+
class YancatToBinSummarizationFunction < 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
|
+
DECLARE
|
|
9
|
+
area_raster_id integer;
|
|
10
|
+
categorical_raster_id integer;
|
|
11
|
+
|
|
12
|
+
BEGIN
|
|
13
|
+
SELECT rv.area_reference_id as area_id into area_raster_id FROM raster_variables rv WHERE rv.id = rasters_id ;
|
|
14
|
+
SELECT rv.second_area_reference_id into categorical_raster_id FROM raster_variables rv WHERE rv.id = rasters_id ;
|
|
15
|
+
|
|
16
|
+
RETURN QUERY
|
|
17
|
+
|
|
18
|
+
WITH lookup AS
|
|
19
|
+
(
|
|
20
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
21
|
+
FROM raster_variables WHERE id IN (
|
|
22
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
23
|
+
from raster_variable_classifications
|
|
24
|
+
where raster_variable_classifications.raster_variable_id = rasters_id)
|
|
25
|
+
), transformation as
|
|
26
|
+
(
|
|
27
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
28
|
+
FROM rasters r
|
|
29
|
+
WHERE r.raster_variable_id = categorical_raster_id
|
|
30
|
+
LIMIT 1
|
|
31
|
+
), polygon as
|
|
32
|
+
(
|
|
33
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
34
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
35
|
+
FROM transformation t, sample_geog_levels sgl
|
|
36
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
37
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
38
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
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 rasters r on ST_Intersects(r.rast, p.geom)
|
|
43
|
+
WHERE r.raster_variable_id = categorical_raster_id
|
|
44
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
45
|
+
), a_table as
|
|
46
|
+
(
|
|
47
|
+
SELECT p.geog_instance_id, p.geog_instance_label, ST_union(ST_Clip(r.rast, p.geom)) as rast
|
|
48
|
+
FROM lookup l, polygon p inner join rasters r on ST_Intersects(r.rast, p.geom)
|
|
49
|
+
WHERE r.raster_variable_id = area_raster_id
|
|
50
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
51
|
+
), calc as
|
|
52
|
+
(
|
|
53
|
+
SELECT r.geog_instance_id, r.geog_instance_label, (ST_SummaryStats(r.rast)).*, (ST_SummaryStats(a.rast)).sum as total_area,
|
|
54
|
+
(ST_SummaryStats(ST_MapAlgebra(r.rast, 1, a.rast, 1, '[rast1]*[rast2]', '32BUI'))).sum as binary_area
|
|
55
|
+
FROM r_table r inner join a_table a on (r.geog_instance_id = a.geog_instance_id)
|
|
56
|
+
)
|
|
57
|
+
SELECT c.geog_instance_id, c.geog_instance_label, c.count as pixel_count, c.binary_area,
|
|
58
|
+
c.binary_area / c.total_area as percent_area, c.total_area as total_area
|
|
59
|
+
FROM calc c;
|
|
60
|
+
|
|
61
|
+
END;
|
|
62
|
+
$BODY$
|
|
63
|
+
LANGUAGE plpgsql VOLATILE;
|
|
64
|
+
SQL
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
class GlcSummarizationVersion5 < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_glc_binary_summarization_v5(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, srid.srid
|
|
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,82 @@
|
|
|
1
|
+
class GlcSummarizationVersion6 < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_glc_binary_summarization_v6(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
|
+
only_rasters AS
|
|
21
|
+
(
|
|
22
|
+
SELECT id, raster_variable_id, rast FROM rasters WHERE raster_variable_id = rasters_id
|
|
23
|
+
),
|
|
24
|
+
bounds as
|
|
25
|
+
(
|
|
26
|
+
|
|
27
|
+
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
|
|
28
|
+
|
|
29
|
+
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
|
|
30
|
+
|
|
31
|
+
where sgl.id = sample_geog_lvl_id group by sgl.id, gi.id, gi.label, gi.code, bound.geog, srid.srid
|
|
32
|
+
|
|
33
|
+
),
|
|
34
|
+
|
|
35
|
+
bin_rast as
|
|
36
|
+
(
|
|
37
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
38
|
+
FROM bounds b inner join only_rasters r on ST_Intersects(r.rast, b.geom)
|
|
39
|
+
where r.raster_variable_id = rasters_id group by b.gid, b.label
|
|
40
|
+
),
|
|
41
|
+
|
|
42
|
+
area_reference_id as (select rv.area_reference_id as id from raster_variables rv where rv.id = rasters_id limit 1),
|
|
43
|
+
|
|
44
|
+
area_ref_rast as
|
|
45
|
+
(
|
|
46
|
+
SELECT b.gid as gid, b.label as label, ST_Union(ST_Clip(r.rast, b.geom)) as rast
|
|
47
|
+
FROM area_reference_id a, bounds b inner join only_rasters r on ST_Intersects(r.rast, b.geom)
|
|
48
|
+
where r.raster_variable_id = a.id group by b.gid, b.label
|
|
49
|
+
),
|
|
50
|
+
|
|
51
|
+
binary_area as
|
|
52
|
+
(
|
|
53
|
+
select b.gid, b.label, (ST_SummaryStats(ST_MapAlgebra(b.rast, 1, a.rast, 1, '[rast1]*[rast2]'))).sum as binary_area
|
|
54
|
+
FROM bin_rast b inner join area_ref_rast a on b.gid = a.gid
|
|
55
|
+
group by b.gid, b.label, a.rast, b.rast
|
|
56
|
+
),
|
|
57
|
+
|
|
58
|
+
total_area as
|
|
59
|
+
(
|
|
60
|
+
SELECT a.gid as gid, a.label as label, (ST_SummaryStats(a.rast, true)).sum as total_area
|
|
61
|
+
FROM area_ref_rast a group by a.gid, a.label, a.rast order by a.label
|
|
62
|
+
),
|
|
63
|
+
|
|
64
|
+
percent_area as
|
|
65
|
+
(
|
|
66
|
+
select a.gid as gid, a.label as label, a.binary_area/b.total_area as percent_area
|
|
67
|
+
from binary_area a, total_area b where a.gid = b.gid order by a.label
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
SELECT b.gid, b.label, b.binary_area, t.total_area, p.percent_area
|
|
71
|
+
FROM binary_area b inner join total_area t on b.gid = t.gid inner join percent_area p on t.gid = p.gid;
|
|
72
|
+
|
|
73
|
+
END;
|
|
74
|
+
$BODY$
|
|
75
|
+
LANGUAGE plpgsql VOLATILE
|
|
76
|
+
COST 100
|
|
77
|
+
ROWS 1000;
|
|
78
|
+
SQL
|
|
79
|
+
|
|
80
|
+
execute(sql)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class TpJpegRasterClipColorMapV2 < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql = <<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_jpeg_raster_clip_colormap_v2(sample_geog_lvl_id bigint, rasters_id bigint, raster_bnd integer, colormap text)
|
|
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) 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_AsJPEG(ST_ColorMap(ST_Union(ST_Rescale(r.rast, 0.5)), 1, colormap), 1) as tiff from new_rast r;
|
|
26
|
+
|
|
27
|
+
END;
|
|
28
|
+
$BODY$
|
|
29
|
+
LANGUAGE 'plpgsql';
|
|
30
|
+
SQL
|
|
31
|
+
|
|
32
|
+
execute sql
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
class NewRastersTable < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
create_table :rasters_new do |t|
|
|
4
|
+
t.column :raster_variable_id, :bigint
|
|
5
|
+
t.column :table_name, :text
|
|
6
|
+
t.column :area_reference_id, :bigint
|
|
7
|
+
t.column :second_area_reference_id, :bigint
|
|
8
|
+
t.column :r_table_schema, :text
|
|
9
|
+
t.timestamps
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
add_index :rasters_new, :raster_variable_id
|
|
13
|
+
add_index :rasters_new, :area_reference_id
|
|
14
|
+
add_index :rasters_new, :second_area_reference_id
|
|
15
|
+
|
|
16
|
+
foreign_key :rasters_new, :raster_variable_id
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
class NewStoredProceduresForNewRasters < 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 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,69 @@
|
|
|
1
|
+
class RemoveOwnershipStatementFromFunction < 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
|
+
one_raster text := 'hello';
|
|
9
|
+
query text := '';
|
|
10
|
+
|
|
11
|
+
BEGIN
|
|
12
|
+
|
|
13
|
+
WITH lookup AS
|
|
14
|
+
(
|
|
15
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
16
|
+
FROM raster_variables WHERE id IN (
|
|
17
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
18
|
+
from raster_variable_classifications
|
|
19
|
+
where raster_variable_classifications.raster_variable_id = rast_id )
|
|
20
|
+
), cat_rast as
|
|
21
|
+
(
|
|
22
|
+
SELECT rv.second_area_reference_id as cat_id
|
|
23
|
+
FROM raster_variables rv
|
|
24
|
+
WHERE rv.id = rast_id
|
|
25
|
+
)
|
|
26
|
+
SELECT r_table_schema || '.' || table_name as tablename
|
|
27
|
+
INTO one_raster
|
|
28
|
+
FROM cat_rast inner join rasters_new on cat_rast.cat_id = rasters_new.raster_variable_id ;
|
|
29
|
+
|
|
30
|
+
RAISE NOTICE ' % ', one_raster;
|
|
31
|
+
|
|
32
|
+
query := $$ WITH lookup AS
|
|
33
|
+
(
|
|
34
|
+
SELECT replace(replace(array_agg(classification::text || ':1')::text, '{', ''), '}', '') as exp
|
|
35
|
+
NTOFROM raster_variables WHERE id IN (
|
|
36
|
+
select raster_variable_classifications.mosaic_raster_variable_id
|
|
37
|
+
from raster_variable_classifications
|
|
38
|
+
where raster_variable_classifications.raster_variable_id = $$ || rast_id || $$)
|
|
39
|
+
)
|
|
40
|
+
, transformation as
|
|
41
|
+
(
|
|
42
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
43
|
+
FROM $$ || one_raster || $$ r
|
|
44
|
+
LIMIT 1
|
|
45
|
+
), polygon as
|
|
46
|
+
(
|
|
47
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
48
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
49
|
+
FROM transformation t, sample_geog_levels sgl
|
|
50
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
51
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
52
|
+
WHERE sgl.id = $$ || sample_geog_lvl_id || $$
|
|
53
|
+
)
|
|
54
|
+
SELECT ST_union(ST_Reclass(ST_Clip(r.rast, 1,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
|
|
55
|
+
FROM lookup l, polygon p inner join $$ || one_raster || $$ r on ST_Intersects(r.rast,p.geom) $$ ;
|
|
56
|
+
|
|
57
|
+
RAISE NOTICE ' % ', query;
|
|
58
|
+
|
|
59
|
+
RETURN QUERY execute query;
|
|
60
|
+
|
|
61
|
+
END;
|
|
62
|
+
$BODY$
|
|
63
|
+
LANGUAGE plpgsql VOLATILE
|
|
64
|
+
COST 100
|
|
65
|
+
ROWS 1000;
|
|
66
|
+
SQL
|
|
67
|
+
execute sql
|
|
68
|
+
end
|
|
69
|
+
end
|