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,13 @@
|
|
|
1
|
+
class AddSendToiRodsFlagToExtractRequest < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
add_column :extract_requests, :send_to_irods, :boolean, :default => false
|
|
5
|
+
add_index :extract_requests, :send_to_irods
|
|
6
|
+
|
|
7
|
+
ExtractRequest.all.each{|extract|
|
|
8
|
+
extract.send_to_irods = false
|
|
9
|
+
extract.save
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
class AddGeographicLeveltoGeogInstance < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
add_column :geog_instances, :geog_code, :string, :limit => 10
|
|
4
|
+
add_column :geog_instances, :str_code, :string, :limit => 16
|
|
5
|
+
add_index :geog_instances, :geog_code
|
|
6
|
+
add_index :geog_instances, :str_code
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def down
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class CreateExtractRequestErrorEvents < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
|
|
4
|
+
create_table :extract_request_error_events do |t|
|
|
5
|
+
t.column :extract_request_id, :bigint
|
|
6
|
+
t.column :error_event_id, :bigint
|
|
7
|
+
t.timestamps
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
foreign_key :extract_request_error_events, :extract_request_id
|
|
11
|
+
foreign_key :extract_request_error_events, :error_event_id
|
|
12
|
+
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
class ChangeUserInstitutionalAffiliationToBool < ActiveRecord::Migration
|
|
2
|
+
class User < ActiveRecord::Base
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
def up
|
|
6
|
+
# add a temp column for the data transfer
|
|
7
|
+
add_column :users, :institutional_affiliation_temp, :boolean
|
|
8
|
+
|
|
9
|
+
# transfer the data
|
|
10
|
+
User.reset_column_information
|
|
11
|
+
User.all.each do |user|
|
|
12
|
+
if user.institutional_affiliation == 'yes'
|
|
13
|
+
user.institutional_affiliation_temp = true
|
|
14
|
+
elsif user.institutional_affiliation == 'no'
|
|
15
|
+
user.institutional_affiliation_temp = false
|
|
16
|
+
end
|
|
17
|
+
user.save
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# drop the original column
|
|
21
|
+
remove_column :users, :institutional_affiliation
|
|
22
|
+
|
|
23
|
+
# rename the temp column to the original one
|
|
24
|
+
rename_column :users, :institutional_affiliation_temp, :institutional_affiliation
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def down
|
|
29
|
+
# add a temp column for the data transfer
|
|
30
|
+
add_column :users, :institutional_affiliation_temp, :string, :limit => 128
|
|
31
|
+
|
|
32
|
+
# transfer the data
|
|
33
|
+
User.reset_column_information
|
|
34
|
+
User.all.each do |user|
|
|
35
|
+
if user.institutional_affiliation == true
|
|
36
|
+
user.institutional_affiliation_temp = 'yes'
|
|
37
|
+
elsif user.institutional_affiliation == false
|
|
38
|
+
user.institutional_affiliation_temp = 'no'
|
|
39
|
+
end
|
|
40
|
+
user.save
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# drop the original column
|
|
44
|
+
remove_column :users, :institutional_affiliation
|
|
45
|
+
|
|
46
|
+
# rename the temp column to the original one
|
|
47
|
+
rename_column :users, :institutional_affiliation_temp, :institutional_affiliation
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
class AddStartAndEndTimeAndTotalTimeToExtractRequest < ActiveRecord::Migration
|
|
2
|
+
def change
|
|
3
|
+
add_column :extract_requests, :begin_extract_time, :bigint
|
|
4
|
+
add_column :extract_requests, :finish_extract_time, :bigint
|
|
5
|
+
add_column :extract_requests, :total_time, :bigint
|
|
6
|
+
end
|
|
7
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
class RemoveAddIndexToAreaDataValue < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
|
|
4
|
+
remove_column :area_data_values, :mnemonic
|
|
5
|
+
add_column :area_data_values, :mnemonic, :string, :limit => 16
|
|
6
|
+
add_index :area_data_values, :mnemonic
|
|
7
|
+
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def down
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
class DropMnemonicColumnAreaDataValue < ActiveRecord::Migration
|
|
2
|
+
def up
|
|
3
|
+
remove_column :area_data_values, :mnemonic
|
|
4
|
+
add_column :area_data_values, :synthetic_mnemonic, :string, :limit => 32
|
|
5
|
+
add_index :area_data_values, :synthetic_mnemonic
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def down
|
|
9
|
+
end
|
|
10
|
+
end
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
class AddNewRasterSummaryFunctions < ActiveRecord::Migration
|
|
2
|
+
# Note that the PostgreSQL JDBC driver has problems creating stored proces that involve the DECLARE keyword.
|
|
3
|
+
def self.up
|
|
4
|
+
# this version of the stored proc isn't usable because it creates a local variable via the DECLARE keyword, which breaks the PostgreSQL 9.1.4 JDBC driver.
|
|
5
|
+
summary_calc_sql =<<-END_OF_PROC
|
|
6
|
+
CREATE OR REPLACE FUNCTION terrapop_raster_summary_calc_v2(raster_op_name varchar(32), rast raster)
|
|
7
|
+
RETURNS numeric(20,4) as $$
|
|
8
|
+
DECLARE
|
|
9
|
+
summary_val numeric(20,4);
|
|
10
|
+
BEGIN
|
|
11
|
+
CASE raster_op_name
|
|
12
|
+
WHEN 'max' THEN summary_val := CAST((ST_SummaryStats(rast)).max as numeric(20,4));
|
|
13
|
+
WHEN 'min' THEN summary_val := CAST((ST_SummaryStats(rast)).min as numeric(20,4));
|
|
14
|
+
WHEN 'mean' THEN summary_val := CAST((ST_SummaryStats(rast)).mean as numeric(20,4));
|
|
15
|
+
WHEN 'count' THEN summary_val := CAST((ST_SummaryStats(rast)).count as numeric(20,4));
|
|
16
|
+
WHEN 'sum' THEN summary_val := CAST((ST_SummaryStats(rast)).sum as numeric(20,4));
|
|
17
|
+
WHEN 'mode' THEN SELECT histogram.value into summary_val
|
|
18
|
+
FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram
|
|
19
|
+
ORDER BY histogram.count desc limit 1;
|
|
20
|
+
ELSE summary_val := null;
|
|
21
|
+
END CASE;
|
|
22
|
+
|
|
23
|
+
RETURN summary_val;
|
|
24
|
+
END;
|
|
25
|
+
$$ LANGUAGE plpgsql
|
|
26
|
+
END_OF_PROC
|
|
27
|
+
|
|
28
|
+
# so, since declare is off-limits, we can use a different structure which requires having a utility function.
|
|
29
|
+
# This function is also somewhat awkward, the RETURN at the end returns the value in the single OUT parameter
|
|
30
|
+
# as declared in the RETURNS part of the signature.
|
|
31
|
+
|
|
32
|
+
# Note that we can't use SELECT INTO STRICT here because the return value might be NULL, if the whole raster tile is nodata.
|
|
33
|
+
|
|
34
|
+
summary_calc_modal_sql = <<-END_OF_PROC
|
|
35
|
+
CREATE OR REPLACE FUNCTION terrapop_modal_value_v2(rast raster, OUT modal numeric) RETURNS numeric
|
|
36
|
+
LANGUAGE plpgsql
|
|
37
|
+
AS $$
|
|
38
|
+
BEGIN
|
|
39
|
+
SELECT histogram.value into modal
|
|
40
|
+
FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram
|
|
41
|
+
ORDER BY histogram.count desc limit 1;
|
|
42
|
+
return;
|
|
43
|
+
END;
|
|
44
|
+
$$;
|
|
45
|
+
END_OF_PROC
|
|
46
|
+
|
|
47
|
+
summary_calc_num_classes_sql = <<-END_OF_PROC
|
|
48
|
+
CREATE OR REPLACE FUNCTION terrapop_num_classes_v2(rast raster, OUT num_classes numeric) RETURNS numeric
|
|
49
|
+
LANGUAGE plpgsql
|
|
50
|
+
AS $$
|
|
51
|
+
BEGIN
|
|
52
|
+
SELECT count(histogram.*) into num_classes
|
|
53
|
+
FROM (SELECT (ST_ValueCount(rast,1)).*) As histogram;
|
|
54
|
+
return;
|
|
55
|
+
END;
|
|
56
|
+
$$;
|
|
57
|
+
END_OF_PROC
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
summary_calc_nodeclare_sql =<<-END_OF_PROC
|
|
61
|
+
CREATE OR REPLACE FUNCTION terrapop_raster_summary_calc_v2(raster_op_name varchar(32), rast raster, area double precision) RETURNS numeric
|
|
62
|
+
LANGUAGE plpgsql
|
|
63
|
+
AS $$
|
|
64
|
+
BEGIN
|
|
65
|
+
RETURN CASE raster_op_name
|
|
66
|
+
WHEN 'max' THEN CAST((ST_SummaryStats(rast)).max as double precision)
|
|
67
|
+
WHEN 'min' THEN CAST((ST_SummaryStats(rast)).min as double precision)
|
|
68
|
+
WHEN 'mean' THEN CAST((ST_SummaryStats(rast)).mean as double precision)
|
|
69
|
+
WHEN 'count' THEN CAST((ST_SummaryStats(rast)).count as double precision)
|
|
70
|
+
WHEN 'sum' THEN CAST((ST_SummaryStats(rast)).sum as double precision)
|
|
71
|
+
WHEN 'mode' THEN terrapop_modal_value_v2(rast)
|
|
72
|
+
WHEN 'num_classes' THEN terrapop_num_classes_v2(rast)
|
|
73
|
+
WHEN 'total_area_bin' THEN CAST((ST_SummaryStats(rast)).sum as double precision)
|
|
74
|
+
WHEN 'percent_area_bin' THEN CAST(((ST_SummaryStats(rast)).sum / area ) as double precision)
|
|
75
|
+
WHEN 'total_area_areal' THEN CAST((ST_SummaryStats(rast)).sum as double precision)
|
|
76
|
+
WHEN 'percent_area_areal' THEN CAST(((ST_SummaryStats(rast)).sum / area ) as double precision)
|
|
77
|
+
ELSE null
|
|
78
|
+
END;
|
|
79
|
+
END;
|
|
80
|
+
$$;
|
|
81
|
+
END_OF_PROC
|
|
82
|
+
|
|
83
|
+
summary_sql = <<-END_OF_PROC
|
|
84
|
+
CREATE OR REPLACE FUNCTION terrapop_raster_summary_v3(sample_geog_lvl_id bigint, raster_var_id bigint, raster_var_ref_id bigint, raster_op_name varchar(32))
|
|
85
|
+
RETURNS TABLE(sample_geog_level_id bigint, raster_variable_id bigint, raster_operation_name varchar(32), geog_instance_id bigint,
|
|
86
|
+
geog_instance_label varchar(255), geog_instance_code numeric(20,0), raster_mnemonic varchar(255),
|
|
87
|
+
boundary_area double precision, raster_area double precision, summary_value double precision) AS $$
|
|
88
|
+
BEGIN
|
|
89
|
+
RETURN QUERY
|
|
90
|
+
|
|
91
|
+
SELECT final.sample_geog_level_id, final.raster_variable_id, final.raster_op_name, final.geog_instance_id,
|
|
92
|
+
final.geog_instance_label, final.geog_instance_code, final.mnemonic, final.boundary_area, final.raster_area, final.value FROM (
|
|
93
|
+
select unioned_rast.sample_geog_level_id, unioned_rast.raster_variable_id, raster_op_name,
|
|
94
|
+
unioned_rast.geog_instance_id, unioned_rast.geog_instance_label, unioned_rast.geog_instance_code,
|
|
95
|
+
CAST(unioned_rast.raster_variable_name || '_' || raster_op_name as varchar(255)) as mnemonic,
|
|
96
|
+
unioned_rast.boundary_area,
|
|
97
|
+
unioned_rast.raster_area,
|
|
98
|
+
terrapop_raster_summary_calc_v2(raster_op_name, St_Union(unioned_rast.rast), unioned_rast.raster_area)::double precision as value
|
|
99
|
+
from (
|
|
100
|
+
select base.sample_geog_level_id, base.raster_variable_id, base.geog_instance_id, base.geog_instance_label,
|
|
101
|
+
base.geog_instance_code, base.raster_variable_name,
|
|
102
|
+
base.boundary_area::double precision AS boundary_area,
|
|
103
|
+
/*ST_Union(ST_MapAlgebra(base.rast, ref_base.rast, '([rast1] * [rast2])::float')) as rast,*/
|
|
104
|
+
/*ST_GeoReference(ST_Union(base.rast), 'GDAL') AS base_esri_ref,*/
|
|
105
|
+
ST_Union(ST_MapAlgebra(base.rast, ST_SetGeoReference(ref_base.rast, ST_GeoReference(base.rast, 'GDAL') , 'GDAL'), '([rast1] * [rast2])::float')) as rast ,
|
|
106
|
+
terrapop_raster_area_v1(base.geog_instance_id, raster_var_ref_id)::double precision AS raster_area
|
|
107
|
+
from (
|
|
108
|
+
SELECT sgl.id as "sample_geog_level_id", my_raster.raster_variable_id as "raster_variable_id",
|
|
109
|
+
gi.id as "geog_instance_id", gi.label as "geog_instance_label", gi.code as "geog_instance_code",
|
|
110
|
+
my_raster.name as "raster_variable_name", ST_AREA(bound.geog) as boundary_area,
|
|
111
|
+
ST_Union(ST_Clip(my_raster.rast, bound.geog::geometry)) as rast
|
|
112
|
+
FROM sample_geog_levels sgl
|
|
113
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
114
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
115
|
+
inner join rasters my_raster on ST_Intersects(my_raster.rast, bound.geog::geometry)
|
|
116
|
+
where sgl.id = sample_geog_lvl_id and my_raster.raster_variable_id = raster_var_id
|
|
117
|
+
group by sgl.id, my_raster.raster_variable_id, gi.id, gi.label, gi.code, my_raster.name, boundary_area
|
|
118
|
+
) base,
|
|
119
|
+
( SELECT ST_Union(ST_Clip(my_raster.rast, bound.geog::geometry)) as rast
|
|
120
|
+
FROM sample_geog_levels sgl
|
|
121
|
+
inner join geog_instances gi on sgl.id = gi.sample_geog_level_id
|
|
122
|
+
inner join boundaries bound on bound.geog_instance_id = gi.id
|
|
123
|
+
inner join rasters my_raster on ST_Intersects(my_raster.rast, bound.geog::geometry)
|
|
124
|
+
where sgl.id = sample_geog_lvl_id and my_raster.raster_variable_id = raster_var_ref_id
|
|
125
|
+
) ref_base
|
|
126
|
+
group by base.sample_geog_level_id, base.raster_variable_id, base.geog_instance_label,
|
|
127
|
+
base.geog_instance_id, base.geog_instance_code, base.raster_variable_name,
|
|
128
|
+
base.boundary_area
|
|
129
|
+
) unioned_rast
|
|
130
|
+
group by
|
|
131
|
+
unioned_rast.sample_geog_level_id, unioned_rast.raster_variable_id,
|
|
132
|
+
raster_op_name, unioned_rast.geog_instance_id, unioned_rast.geog_instance_label,
|
|
133
|
+
unioned_rast.geog_instance_code, mnemonic, unioned_rast.boundary_area, unioned_rast.raster_area
|
|
134
|
+
order by unioned_rast.geog_instance_code
|
|
135
|
+
) final
|
|
136
|
+
group by final.sample_geog_level_id,
|
|
137
|
+
final.raster_variable_id,
|
|
138
|
+
final.raster_op_name,
|
|
139
|
+
final.geog_instance_id,
|
|
140
|
+
final.geog_instance_label,
|
|
141
|
+
final.geog_instance_code,
|
|
142
|
+
final.mnemonic,
|
|
143
|
+
final.boundary_area,
|
|
144
|
+
final.raster_area,
|
|
145
|
+
final.value
|
|
146
|
+
order by final.geog_instance_code;
|
|
147
|
+
|
|
148
|
+
END;
|
|
149
|
+
$$ LANGUAGE plpgsql
|
|
150
|
+
END_OF_PROC
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
area_sql = <<-END_OF_PROC
|
|
154
|
+
CREATE OR REPLACE FUNCTION terrapop_raster_area_v1(_geog_instance_id bigint, raster_var_ref_id bigint)
|
|
155
|
+
RETURNS TABLE(raster_area double precision) AS $$
|
|
156
|
+
BEGIN
|
|
157
|
+
RETURN QUERY
|
|
158
|
+
SELECT final.raster_area FROM (
|
|
159
|
+
select unioned_rast.raster_area AS raster_area
|
|
160
|
+
from (
|
|
161
|
+
select SUM((ST_SummaryStats((base.rast))).sum::double precision) AS raster_area
|
|
162
|
+
from (
|
|
163
|
+
SELECT ST_Union(ST_Clip(my_raster.rast, bound.geog::geometry)) as rast
|
|
164
|
+
FROM geog_instances gi, boundaries bound
|
|
165
|
+
inner join rasters my_raster on ST_Intersects(my_raster.rast, bound.geog::geometry)
|
|
166
|
+
where gi.id = _geog_instance_id and my_raster.raster_variable_id = raster_var_ref_id AND bound.geog_instance_id = gi.id
|
|
167
|
+
group by my_raster.raster_variable_id, gi.id, gi.label, gi.code, my_raster.name
|
|
168
|
+
) base
|
|
169
|
+
) unioned_rast
|
|
170
|
+
) final
|
|
171
|
+
group by final.raster_area;
|
|
172
|
+
END;
|
|
173
|
+
$$ LANGUAGE plpgsql
|
|
174
|
+
END_OF_PROC
|
|
175
|
+
|
|
176
|
+
execute summary_calc_modal_sql
|
|
177
|
+
execute summary_calc_num_classes_sql
|
|
178
|
+
execute summary_calc_nodeclare_sql
|
|
179
|
+
execute area_sql
|
|
180
|
+
execute summary_sql
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
def self.down
|
|
184
|
+
execute 'drop function if exists terrapop_modal_value_v2(rast raster, OUT modal numeric)'
|
|
185
|
+
execute 'drop function if exists terrapop_num_classes_v2(rast raster, OUT num_classes numeric)'
|
|
186
|
+
execute 'drop function if exists terrapop_raster_summary_calc_v2(raster_op_name varchar(32), rast raster, area float)'
|
|
187
|
+
execure 'drop function if exists terrapop_raster_area_v1(sample_geog_lvl_id bigint, raster_var_ref_id bigint)'
|
|
188
|
+
execute 'drop function if exists terrapop_raster_summary_v3(sample_geog_lvl_id bigint, raster_var_id bigint, raster_var_ref_id bigint, raster_op_name varchar(32))'
|
|
189
|
+
|
|
190
|
+
end
|
|
191
|
+
end
|