Импорт растров через Postgis
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Импорт растров через Postgis
Почему две 'c'?
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 162
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Импорт растров через Postgis
а почему public c двумя сс? В базе как?
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
В базе тоже так, я специально обозвал
- Вложения
-
- Screenshot_11.jpg (48.1 КБ) 3673 просмотра
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
Поменял имя схемы на public и загрузка пошла. Видимо это имя зарезервировано было. Спасибо.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Импорт растров через Postgis
public - служебная схема, лучше её не трогать
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 162
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Импорт растров через Postgis
только имя таблицы надо было не именем растра, а более универсальное. Там потом одноименные индексы, ограничения полей и т.п. создадутся, неудобный пример после подобного импорта:
Спойлер
CREATE TABLE IF NOT EXISTS public._08_01_2020_msk_orto_5cm_miks2018
(
rid integer NOT NULL DEFAULT nextval('_08_01_2020_msk_orto_5cm_miks2018_rid_seq'::regclass),
rast raster,
CONSTRAINT _08_01_2020_msk_orto_5cm_miks2018_pkey PRIMARY KEY (rid),
CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 0),
CONSTRAINT enforce_scalex_rast CHECK (round(st_scalex(rast)::numeric, 10) = round(0.05, 10)),
CONSTRAINT enforce_scaley_rast CHECK (round(st_scaley(rast)::numeric, 10) = round(- 0.05, 10)),
CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 32),
CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 32),
CONSTRAINT enforce_same_alignment_rast CHECK (st_samealignment(rast, '01000000009A9999999999A93F9A9999999999A9BFCDCCCCCCCC3F8F40333333330394C140000000000000000000000000000000000000000001000100'::raster)),
CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) = 4),
CONSTRAINT enforce_pixel_types_rast CHECK (_raster_constraint_pixel_types(rast) = '{8BUI,8BUI,8BUI,8BUI}'::text[]),
CONSTRAINT enforce_nodata_values_rast CHECK (_raster_constraint_nodata_values(rast) = '{NULL,NULL,NULL,NULL}'::numeric[]),
CONSTRAINT enforce_out_db_rast CHECK (_raster_constraint_out_db(rast) = '{f,f,f,f}'::boolean[]),
CONSTRAINT enforce_max_extent_rast CHECK (st_envelope(rast) @ '01030000000100000005000000CDCCCCCCCC3F8F40666666660640BF40CDCCCCCCCC3F8F40333333330394C14066666666E63F9F40333333330394C14066666666E63F9F40666666660640BF40CDCCCCCCCC3F8F40666666660640BF40'::geometry) NOT VALID
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018
OWNER to postgres;
-- Index: _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
-- DROP INDEX IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx;
CREATE INDEX IF NOT EXISTS _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
ON public._08_01_2020_msk_orto_5cm_miks2018 USING gist
(st_convexhull(rast))
TABLESPACE pg_default;
(
rid integer NOT NULL DEFAULT nextval('_08_01_2020_msk_orto_5cm_miks2018_rid_seq'::regclass),
rast raster,
CONSTRAINT _08_01_2020_msk_orto_5cm_miks2018_pkey PRIMARY KEY (rid),
CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 0),
CONSTRAINT enforce_scalex_rast CHECK (round(st_scalex(rast)::numeric, 10) = round(0.05, 10)),
CONSTRAINT enforce_scaley_rast CHECK (round(st_scaley(rast)::numeric, 10) = round(- 0.05, 10)),
CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 32),
CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 32),
CONSTRAINT enforce_same_alignment_rast CHECK (st_samealignment(rast, '01000000009A9999999999A93F9A9999999999A9BFCDCCCCCCCC3F8F40333333330394C140000000000000000000000000000000000000000001000100'::raster)),
CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) = 4),
CONSTRAINT enforce_pixel_types_rast CHECK (_raster_constraint_pixel_types(rast) = '{8BUI,8BUI,8BUI,8BUI}'::text[]),
CONSTRAINT enforce_nodata_values_rast CHECK (_raster_constraint_nodata_values(rast) = '{NULL,NULL,NULL,NULL}'::numeric[]),
CONSTRAINT enforce_out_db_rast CHECK (_raster_constraint_out_db(rast) = '{f,f,f,f}'::boolean[]),
CONSTRAINT enforce_max_extent_rast CHECK (st_envelope(rast) @ '01030000000100000005000000CDCCCCCCCC3F8F40666666660640BF40CDCCCCCCCC3F8F40333333330394C14066666666E63F9F40333333330394C14066666666E63F9F40666666660640BF40CDCCCCCCCC3F8F40666666660640BF40'::geometry) NOT VALID
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018
OWNER to postgres;
-- Index: _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
-- DROP INDEX IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx;
CREATE INDEX IF NOT EXISTS _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
ON public._08_01_2020_msk_orto_5cm_miks2018 USING gist
(st_convexhull(rast))
TABLESPACE pg_default;
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
да, я поменял имя таблицы при загрузе одного растра, спасибо.AlexRomantsov писал(а): ↑12 июл 2024, 11:19только имя таблицы надо было не именем растра, а более универсальное. Там потом одноименные индексы, ограничения полей и т.п. создадутся, неудобный пример после подобного импорта:Спойлер
CREATE TABLE IF NOT EXISTS public._08_01_2020_msk_orto_5cm_miks2018
(
rid integer NOT NULL DEFAULT nextval('_08_01_2020_msk_orto_5cm_miks2018_rid_seq'::regclass),
rast raster,
CONSTRAINT _08_01_2020_msk_orto_5cm_miks2018_pkey PRIMARY KEY (rid),
CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 0),
CONSTRAINT enforce_scalex_rast CHECK (round(st_scalex(rast)::numeric, 10) = round(0.05, 10)),
CONSTRAINT enforce_scaley_rast CHECK (round(st_scaley(rast)::numeric, 10) = round(- 0.05, 10)),
CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 32),
CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 32),
CONSTRAINT enforce_same_alignment_rast CHECK (st_samealignment(rast, '01000000009A9999999999A93F9A9999999999A9BFCDCCCCCCCC3F8F40333333330394C140000000000000000000000000000000000000000001000100'::raster)),
CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) = 4),
CONSTRAINT enforce_pixel_types_rast CHECK (_raster_constraint_pixel_types(rast) = '{8BUI,8BUI,8BUI,8BUI}'::text[]),
CONSTRAINT enforce_nodata_values_rast CHECK (_raster_constraint_nodata_values(rast) = '{NULL,NULL,NULL,NULL}'::numeric[]),
CONSTRAINT enforce_out_db_rast CHECK (_raster_constraint_out_db(rast) = '{f,f,f,f}'::boolean[]),
CONSTRAINT enforce_max_extent_rast CHECK (st_envelope(rast) @ '01030000000100000005000000CDCCCCCCCC3F8F40666666660640BF40CDCCCCCCCC3F8F40333333330394C14066666666E63F9F40333333330394C14066666666E63F9F40666666660640BF40CDCCCCCCCC3F8F40666666660640BF40'::geometry) NOT VALID
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018
OWNER to postgres;
-- Index: _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
-- DROP INDEX IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx;
CREATE INDEX IF NOT EXISTS _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
ON public._08_01_2020_msk_orto_5cm_miks2018 USING gist
(st_convexhull(rast))
TABLESPACE pg_default;
Еще вопрос, может знаете. В именах файлах .tif присутствует кириллица. И видимо поэтому он не читается. Это можно как то обойти? Кодировку chcp менял на 1251, но это только помогает отображать в самой консоле кириллицу.
- Вложения
-
- Screenshot_12.jpg (23.75 КБ) 3633 просмотра
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 162
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Импорт растров через Postgis
Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
Слои получилось загрузить БД, но вот в самом QGIS, при попытке добавить слой в проект, вылезает ошибка.AlexRomantsov писал(а): ↑12 июл 2024, 12:09Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name
При этом, если я загружаю только 1 растр, он его открывает. А если два и более в 1 таблицу, то выдает ошибку.
-
- Завсегдатай
- Сообщения: 420
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 162
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Импорт растров через Postgis
а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
Как то так. Добавить в слои тоже не могу.AlexRomantsov писал(а): ↑12 июл 2024, 12:43а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает
- Вложения
-
- Screenshot_15.jpg (91.22 КБ) 3568 просмотров
Последний раз редактировалось Budjik 12 июл 2024, 13:12, всего редактировалось 1 раз.
-
- Интересующийся
- Сообщения: 23
- Зарегистрирован: 29 мар 2024, 16:33
- Репутация: 0
- Откуда: Москва
Re: Импорт растров через Postgis
Способы добавления одинаковые. Может дело в команде? Для массовых надо что то другое прописать?
raster2pgsql -F -I -C -s 4326 D:\projectMOQGIS\n\*.tif -t 100x100 public.zona4 | psql -d test -U postgres -h localhost
raster2pgsql -F -I -C -s 4326 D:\projectMOQGIS\n\*.tif -t 100x100 public.zona4 | psql -d test -U postgres -h localhost
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 27 гостей