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,34 @@
|
|
|
1
|
+
class AddColorMapToTiffOutput < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql = <<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_raster_clip_colormap(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_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as geom
|
|
14
|
+
FROM sample_geog_levels sgl
|
|
15
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
16
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
17
|
+
where gi.sample_geog_level_id = sample_geog_lvl_id
|
|
18
|
+
),
|
|
19
|
+
new_rast AS
|
|
20
|
+
(
|
|
21
|
+
SELECT ST_Union(ST_Clip(r.rast, raster_bnd, p.geom, TRUE)) as rast
|
|
22
|
+
FROM poly_table p inner join rasters r on ST_Intersects(r.rast,p.geom)
|
|
23
|
+
where r.raster_variable_id = rasters_id
|
|
24
|
+
)
|
|
25
|
+
select ST_AsTiff(ST_ColorMap(ST_Union(r.rast), 1, colormap),'LZW', (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as tiff from new_rast r;
|
|
26
|
+
|
|
27
|
+
END;
|
|
28
|
+
$BODY$
|
|
29
|
+
LANGUAGE 'plpgsql';
|
|
30
|
+
SQL
|
|
31
|
+
|
|
32
|
+
execute sql
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class AddColorMapToJpegOutput < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql = <<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_jpeg_raster_clip_colormap(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_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) 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(r.rast), 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,65 @@
|
|
|
1
|
+
class AddNonColorMapCookieCutterFunctions < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql0 = <<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_jpeg_raster_clip(sample_geog_lvl_id bigint, rasters_id bigint, raster_bnd integer)
|
|
5
|
+
RETURNS TABLE (tiff bytea) AS
|
|
6
|
+
$BODY$
|
|
7
|
+
|
|
8
|
+
BEGIN
|
|
9
|
+
RETURN QUERY
|
|
10
|
+
|
|
11
|
+
WITH poly_table AS
|
|
12
|
+
(
|
|
13
|
+
SELECT ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) 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_Union(r.rast)) as tiff from new_rast r;
|
|
26
|
+
|
|
27
|
+
END;
|
|
28
|
+
$BODY$
|
|
29
|
+
LANGUAGE 'plpgsql';
|
|
30
|
+
SQL
|
|
31
|
+
|
|
32
|
+
sql1 = <<-SQL
|
|
33
|
+
CREATE OR REPLACE Function terrapop_tiff_raster_clip(sample_geog_lvl_id bigint, rasters_id bigint, raster_bnd integer)
|
|
34
|
+
RETURNS TABLE (tiff bytea) AS
|
|
35
|
+
$BODY$
|
|
36
|
+
|
|
37
|
+
BEGIN
|
|
38
|
+
RETURN QUERY
|
|
39
|
+
|
|
40
|
+
WITH poly_table AS
|
|
41
|
+
(
|
|
42
|
+
SELECT ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as geom
|
|
43
|
+
FROM sample_geog_levels sgl
|
|
44
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
45
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
46
|
+
where gi.sample_geog_level_id = sample_geog_lvl_id
|
|
47
|
+
),
|
|
48
|
+
new_rast AS
|
|
49
|
+
(
|
|
50
|
+
SELECT ST_Union(ST_Clip(r.rast, raster_bnd, p.geom, TRUE)) as rast
|
|
51
|
+
FROM poly_table p inner join rasters r on ST_Intersects(r.rast,p.geom)
|
|
52
|
+
where r.raster_variable_id = rasters_id
|
|
53
|
+
)
|
|
54
|
+
select ST_AsTiff(ST_Union(r.rast),'LZW', (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as tiff from new_rast r;
|
|
55
|
+
|
|
56
|
+
END;
|
|
57
|
+
$BODY$
|
|
58
|
+
LANGUAGE 'plpgsql';
|
|
59
|
+
SQL
|
|
60
|
+
|
|
61
|
+
execute sql0
|
|
62
|
+
execute sql1
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
class AddCategoricalMultiBandSummarization < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
sql =<<-SQL
|
|
5
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_raster_v1(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN raster_bnd integer)
|
|
6
|
+
RETURNS TABLE(geog_instance_id bigint, geog_instance_label character varying, num_class bigint, mod_class double precision, total_area double precision) AS
|
|
7
|
+
$BODY$
|
|
8
|
+
DECLARE
|
|
9
|
+
|
|
10
|
+
BEGIN
|
|
11
|
+
|
|
12
|
+
RETURN QUERY
|
|
13
|
+
WITH poly_table AS (
|
|
14
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
15
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, (SELECT ST_SRID(r.rast) FROM rasters r WHERE r.raster_variable_id = rasters_id LIMIT 1)) as geom
|
|
16
|
+
FROM sample_geog_levels sgl
|
|
17
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
18
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
19
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
20
|
+
),
|
|
21
|
+
cat_rast AS
|
|
22
|
+
(
|
|
23
|
+
select p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code, ST_Union(ST_Clip(r.rast,raster_bnd, p.geom, 0)) as rast
|
|
24
|
+
from poly_table p inner join rasters r on ST_Intersects(r.rast, raster_bnd, p.geom)
|
|
25
|
+
where r.raster_variable_id = rasters_id
|
|
26
|
+
group by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
27
|
+
),
|
|
28
|
+
area_rast AS
|
|
29
|
+
(
|
|
30
|
+
select p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code, (ST_SummaryStats(ST_Union(ST_Clip(r.rast, p.geom)))).sum as categorical_area
|
|
31
|
+
from poly_table p inner join rasters r on ST_Intersects(r.rast, p.geom)
|
|
32
|
+
where r.raster_variable_id = ( select rv.area_reference_id from raster_variables rv where rv.id = rasters_id limit 1 )
|
|
33
|
+
group by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
34
|
+
)
|
|
35
|
+
SELECT area_rast.geog_instance_id, area_rast.geog_instance_label, cat_num_classes.number_of_classes, cat_mode_class.value as modal_class, area_rast.categorical_area
|
|
36
|
+
FROM area_rast inner join
|
|
37
|
+
(
|
|
38
|
+
SELECT cat_count.geog_instance_id, cat_count.geog_instance_label, count(cat_count.value) as number_of_classes
|
|
39
|
+
FROM (
|
|
40
|
+
select cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).value
|
|
41
|
+
from cat_rast
|
|
42
|
+
) cat_count
|
|
43
|
+
GROUP BY cat_count.geog_instance_id, cat_count.geog_instance_label
|
|
44
|
+
) cat_num_classes on (area_rast.geog_instance_id = cat_num_classes.geog_instance_id) inner join
|
|
45
|
+
(
|
|
46
|
+
SELECT DISTINCT ON (cat_rast.geog_instance_id, cat_rast.geog_instance_label)
|
|
47
|
+
cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).*
|
|
48
|
+
FROM cat_rast
|
|
49
|
+
ORDER BY cat_rast.geog_instance_id, cat_rast.geog_instance_label, (ST_valuecount(cat_rast.rast)).count DESC
|
|
50
|
+
) cat_mode_class ON (area_rast.geog_instance_id = cat_mode_class.geog_instance_id);
|
|
51
|
+
|
|
52
|
+
END;
|
|
53
|
+
|
|
54
|
+
$BODY$
|
|
55
|
+
LANGUAGE plpgsql VOLATILE;
|
|
56
|
+
SQL
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
execute(sql)
|
|
60
|
+
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
class AddNewContinousSummarization < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_continuous_summarization_without_arearef(sample_geog_lvl_id bigint, rasters_id bigint, band_idx bigint)
|
|
5
|
+
RETURNS TABLE (geog_instance_id bigint, geog_instance_label character varying, count bigint, total_area double precision, mean double precision, stddev double precision, min double precision, max double precision)
|
|
6
|
+
AS
|
|
7
|
+
$BODY$
|
|
8
|
+
BEGIN
|
|
9
|
+
RETURN QUERY
|
|
10
|
+
WITH transformation AS
|
|
11
|
+
(
|
|
12
|
+
SELECT ST_SRID(r.rast) as prj_val
|
|
13
|
+
FROM rasters r
|
|
14
|
+
WHERE r.raster_variable_id = rasters_id LIMIT 1
|
|
15
|
+
),
|
|
16
|
+
polygon AS
|
|
17
|
+
(
|
|
18
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label, ST_Transform(bound.geog::geometry, t.prj_val) as geom
|
|
19
|
+
FROM transformation t, sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
20
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
21
|
+
WHERE sgl.id = sample_geog_lvl_id
|
|
22
|
+
),area_ref_rast as
|
|
23
|
+
(
|
|
24
|
+
SELECT p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, ST_union(ST_Clip(r.rast, p.geom)) as rast
|
|
25
|
+
FROM polygon p inner join rasters r on ST_Intersects(r.rast, p.geom)
|
|
26
|
+
WHERE p.sample_geog_level_id = sample_geog_lvl_id and r.raster_variable_id = rasters_id
|
|
27
|
+
GROUP BY p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label
|
|
28
|
+
)
|
|
29
|
+
select a.geog_instance_id, a.geog_instance_label, (ST_Summarystats(a.rast, band_idx::integer)).*
|
|
30
|
+
from area_ref_rast a;
|
|
31
|
+
END;
|
|
32
|
+
$BODY$
|
|
33
|
+
LANGUAGE 'plpgsql';
|
|
34
|
+
SQL
|
|
35
|
+
|
|
36
|
+
execute(sql)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
class CategoricalToBinaryAsRaster < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_raster_to_binary_tiff(IN smpl_geog_lvl_id integer, IN rast_var_id integer, IN band_num integer DEFAULT 1)
|
|
5
|
+
RETURNS TABLE (tiff bytea) 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 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 = rast_var_id)
|
|
17
|
+
),transformation as
|
|
18
|
+
(
|
|
19
|
+
SELECT ST_SRID(r.rast) as prj_value
|
|
20
|
+
FROM rasters r
|
|
21
|
+
WHERE r.raster_variable_id = (select rv.second_area_reference_id from raster_variables rv where rv.id = rast_var_id limit 1) LIMIT 1
|
|
22
|
+
),polygon as
|
|
23
|
+
(
|
|
24
|
+
SELECT sgl.id as sample_geog_level_id, gi.id as geog_instance_id, gi.label as geog_instance_label,
|
|
25
|
+
gi.code as geog_instance_code, ST_Transform(bound.geog::geometry, t.prj_value) as geom
|
|
26
|
+
FROM transformation t, sample_geog_levels sgl
|
|
27
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
28
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
29
|
+
WHERE sgl.id = smpl_geog_lvl_id
|
|
30
|
+
), binary_rast AS
|
|
31
|
+
(
|
|
32
|
+
SELECT p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code, ST_union(ST_Clip(r.rast, band_num,p.geom, TRUE)) as rast
|
|
33
|
+
FROM polygon p inner join rasters r on ST_Intersects(r.rast, p.geom)
|
|
34
|
+
WHERE r.raster_variable_id = (select rv.second_area_reference_id from raster_variables rv where rv.id = rast_var_id limit 1)
|
|
35
|
+
GROUP by p.sample_geog_level_id, p.geog_instance_id, p.geog_instance_label, p.geog_instance_code
|
|
36
|
+
)
|
|
37
|
+
select ST_AsTiff(ST_Union(r.rast),'LZW', max(t.prj_value)) as tiff from binary_rast r, transformation t;
|
|
38
|
+
|
|
39
|
+
END;
|
|
40
|
+
$BODY$
|
|
41
|
+
LANGUAGE 'plpgsql';
|
|
42
|
+
SQL
|
|
43
|
+
|
|
44
|
+
execute(sql)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
class GenericCategoricalToBinaryRasterOutputFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
sql0 =<<-SQL
|
|
5
|
+
CREATE OR REPLACE FUNCTION terrapop_categorical_to_binary_as_raster(IN sample_geog_lvl_id bigint, IN rasters_id bigint, IN bnd_num integer DEFAULT 1)
|
|
6
|
+
RETURNS TABLE(raster_table raster) AS
|
|
7
|
+
$BODY$
|
|
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 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_union(ST_Reclass(ST_Clip(r.rast, bnd_num,p.geom, TRUE),1,l.exp, '8BUI',0)) as rast
|
|
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
|
+
END;
|
|
41
|
+
|
|
42
|
+
$BODY$
|
|
43
|
+
LANGUAGE 'plpgsql';
|
|
44
|
+
SQL
|
|
45
|
+
|
|
46
|
+
execute(sql0)
|
|
47
|
+
|
|
48
|
+
sql1 =<<-SQL
|
|
49
|
+
CREATE OR REPLACE FUNCTION terrapop_projection_number_from_stacked_raster(raster_id bigint)
|
|
50
|
+
RETURNS integer AS
|
|
51
|
+
$BODY$
|
|
52
|
+
DECLARE prj_value integer;
|
|
53
|
+
BEGIN
|
|
54
|
+
WITH cat_rast as
|
|
55
|
+
(
|
|
56
|
+
SELECT rv.second_area_reference_id as cat_id
|
|
57
|
+
FROM raster_variables rv
|
|
58
|
+
WHERE rv.id = raster_id
|
|
59
|
+
),transformation as
|
|
60
|
+
(
|
|
61
|
+
SELECT ST_SRID(r.rast) AS prj_value
|
|
62
|
+
FROM cat_rast c, rasters r
|
|
63
|
+
WHERE r.raster_variable_id = c.cat_id
|
|
64
|
+
LIMIT 1
|
|
65
|
+
)
|
|
66
|
+
SELECT t.prj_value INTO prj_value FROM transformation t;
|
|
67
|
+
|
|
68
|
+
RETURN prj_value;
|
|
69
|
+
END;
|
|
70
|
+
$BODY$
|
|
71
|
+
LANGUAGE 'plpgsql';
|
|
72
|
+
SQL
|
|
73
|
+
|
|
74
|
+
execute(sql1)
|
|
75
|
+
|
|
76
|
+
sql2 =<<-SQL
|
|
77
|
+
CREATE OR REPLACE FUNCTION terrapop_raster_as_tiff(projection integer, rast raster)
|
|
78
|
+
RETURNS bytea AS
|
|
79
|
+
$BODY$
|
|
80
|
+
DECLARE ret_raster raster;
|
|
81
|
+
BEGIN
|
|
82
|
+
SELECT ST_AsTiff(rast,'LZW', projection) into ret_raster;
|
|
83
|
+
RETURN ret_raster;
|
|
84
|
+
END;
|
|
85
|
+
$BODY$
|
|
86
|
+
LANGUAGE 'plpgsql';
|
|
87
|
+
SQL
|
|
88
|
+
|
|
89
|
+
execute(sql2)
|
|
90
|
+
|
|
91
|
+
end
|
|
92
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
class RatioAreaLevelDataToRasterFunction < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
sql =<<-SQL
|
|
4
|
+
CREATE OR REPLACE Function terrapop_areal_rasterization_number(sample_geog_lvl_id bigint, rasters_id bigint, area_data_variables_id bigint, raster_sizer bigint, bnd_num integer)
|
|
5
|
+
RETURNS TABLE (rast raster)
|
|
6
|
+
AS
|
|
7
|
+
$BODY$
|
|
8
|
+
BEGIN
|
|
9
|
+
RETURN QUERY
|
|
10
|
+
WITH new_rast as
|
|
11
|
+
(
|
|
12
|
+
SELECT ST_Rescale(ST_Asraster(mybound.geom, my_rast.rast, '32BF', 1.0, -5), my_rast.scale_x/raster_sizer,
|
|
13
|
+
my_rast.scale_y/raster_sizer) as rast
|
|
14
|
+
FROM (
|
|
15
|
+
select ST_Collect(bound.geog::geometry) as geom
|
|
16
|
+
from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
17
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
18
|
+
where gi.sample_geog_level_id = sample_geog_lvl_id
|
|
19
|
+
) mybound,
|
|
20
|
+
(
|
|
21
|
+
select ST_Scalex(r.rast) as scale_x, ST_Scaley(r.rast) as scale_y, r.rast
|
|
22
|
+
from rasters r
|
|
23
|
+
where r.raster_variable_id = rasters_id
|
|
24
|
+
limit 1
|
|
25
|
+
) my_rast
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
SELECT ST_Union(ST_AsRaster(clip.geom, new_rast.rast, '32BF', areal_data.value)) as rast
|
|
29
|
+
FROM new_rast,
|
|
30
|
+
(
|
|
31
|
+
select gi.id, adv.mnemonic, area_data.value
|
|
32
|
+
from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
33
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
34
|
+
left join area_data_values area_data on gi.id = area_data.geog_instance_id
|
|
35
|
+
inner join area_data_variables adv ON area_data.area_data_variable_id = adv.id
|
|
36
|
+
where gi.sample_geog_level_id = sample_geog_lvl_id and adv.id = area_data_variables_id
|
|
37
|
+
) areal_data inner join
|
|
38
|
+
(
|
|
39
|
+
SELECT gi.id, ST_union(bound.geog::geometry) as geom
|
|
40
|
+
from sample_geog_levels sgl inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
41
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
42
|
+
inner join new_rast r on ST_Intersects(r.rast, bound.geog::geometry)
|
|
43
|
+
where gi.sample_geog_level_id = sample_geog_lvl_id
|
|
44
|
+
group by gi.id
|
|
45
|
+
) clip on areal_data.id = clip.id;
|
|
46
|
+
END;
|
|
47
|
+
$BODY$
|
|
48
|
+
LANGUAGE 'plpgsql';
|
|
49
|
+
SQL
|
|
50
|
+
|
|
51
|
+
execute(sql)
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|