Страница 2 из 2

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 10:54
trir
Почему две 'c'?

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 10:57
AlexRomantsov
а почему public c двумя сс? В базе как?

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 11:05
Budjik
AlexRomantsov писал(а):
12 июл 2024, 10:57
а почему public c двумя сс? В базе как?
В базе тоже так, я специально обозвал

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 11:16
Budjik
Поменял имя схемы на public и загрузка пошла. Видимо это имя зарезервировано было. Спасибо.

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 11:19
trir
public - служебная схема, лучше её не трогать

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 11:19
AlexRomantsov
только имя таблицы надо было не именем растра, а более универсальное. Там потом одноименные индексы, ограничения полей и т.п. создадутся, неудобный пример после подобного импорта:
Спойлер
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;

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 11:50
Budjik
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, но это только помогает отображать в самой консоле кириллицу.

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 12:09
AlexRomantsov
Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 12:23
Budjik
AlexRomantsov писал(а):
12 июл 2024, 12:09
Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name
Слои получилось загрузить БД, но вот в самом QGIS, при попытке добавить слой в проект, вылезает ошибка.



Screenshot_13.jpg
Screenshot_13.jpg (74.91 КБ) 4784 просмотра



При этом, если я загружаю только 1 растр, он его открывает. А если два и более в 1 таблицу, то выдает ошибку.

Screenshot_14.jpg
Screenshot_14.jpg (61.12 КБ) 4758 просмотров

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 12:43
AlexRomantsov
а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 12:49
Budjik
AlexRomantsov писал(а):
12 июл 2024, 12:43
а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает
Как то так. Добавить в слои тоже не могу.

Screenshot_18.jpg
Screenshot_18.jpg (101.05 КБ) 4718 просмотров

Re: Импорт растров через Postgis

Добавлено: 12 июл 2024, 13:04
Budjik
Способы добавления одинаковые. Может дело в команде? Для массовых надо что то другое прописать?

raster2pgsql -F -I -C -s 4326 D:\projectMOQGIS\n\*.tif -t 100x100 public.zona4 | psql -d test -U postgres -h localhost