CREATE TABLE public.pixel_foco ( fid serial NOT NULL, foco_id varchar(80) NOT NULL, data_hora_gmt timestamp NOT NULL, satelite varchar(100) NOT NULL, geometria geometry(POLYGON, 4326) NOT NULL, CONSTRAINT pixel_foco_pkey PRIMARY KEY (foco_id) ); CREATE INDEX sidx_pixel_foco_geometria ON public.pixel_foco USING gist (geometria); CREATE OR REPLACE FUNCTION public.create_pixel_foco() RETURNS trigger LANGUAGE plpgsql AS $function$ BEGIN IF NEW.satelite in ('NOAA-20', 'NPP-375') THEN INSERT INTO pixel_foco(foco_id,data_hora_gmt, satelite, geometria) VALUES(NEW.foco_id, NEW.data_hora_gmt, new.satelite, ST_buffer(new.geometria, 0.00375, 'endcap=square')); ELSIF NEW.satelite in ('AQUA_M-M', 'AQUA_M-T', 'TERRA_M-M', 'TERRA_M-T') THEN INSERT INTO pixel_foco(foco_id,data_hora_gmt, satelite, geometria) VALUES(NEW.foco_id, NEW.data_hora_gmt, new.satelite, ST_buffer(new.geometria, 0.005, 'endcap=square')); end if; RETURN NEW; END; $function$; CREATE TRIGGER create_pixel_foco_trigger BEFORE INSERT ON public.focos FOR EACH ROW EXECUTE PROCEDURE public.create_pixel_foco();