大数据操作实验一

实验一:https://www.hifleet.com/wp/communities/data/hangyundashujujishukechengshiyanzhinan

1.Postgresql

1.1 数据库的对象创建

1.1.1 创建数据库(Database)

鼠标右键database进行创建
在这里插入图片描述

1.1.2 创建图(Schema)

鼠标右键schema,然后创建schema图纸
在这里插入图片描述

1.1.3 创建表(Table)

鼠标右键Table,创建表
在这里插入图片描述

1.2数据库实列化

1.2.1 实列化静态数据

提前在Table表中建好相关字段,我新建了个数据库,这边以static_ships表为例,这个static_ships就是上面的demo_table
在表中建立相关字段
在这里插入图片描述

使用query语句进行导入并查询
在这里插入图片描述

--静态数据的字段建立
create table ais_data.static_ships(
	id bigserial,
	mmsi integer,
	imo integer,
	callsign text,
	shipname text,
	shiptype integer,
	to_bow integer,
	to_stern integer,
	to_startboard integer,
	to_port integer,
	eta text,
	draught double precision,
	destination text,
	ts bigint,
	constraint static_ships_pkey primary key(id)
);
--静态数据的导入,copy from句式,图.表(字段) 数据文件来源
COPY ais_data.static_ships (ID,MMSI,IMO,CALLSIGN,SHIPNAME,SHIPTYPE, TO_BOW,TO_STERN,TO_STARTBOARD,TO_PORT,ETA,DRAUGHT,DESTINATION,TS) FROM 'G:/data/static_ships_from_pg.txt';
--查询导入的数据数量
SELECT COUNT(*) FROM ais_data.static_ships

1.2.2 实列化动态数据

--以下是创建动态数据表及其相关的字段(字段小写)
create table ais_data.dynamic_ships(
	id bigserial,
	mmsi integer,
	ts bigserial,
	lon double precision,
	lat double precision,
	course double precision,
	speed double precision,
	heading integer,
	rate_of_turn double precision,
	navigation_status integer,
	constraint dynamic_ships_pkey primary key(id)
);

在这里插入图片描述

更新下就能看见动态数据表
下面在query中进行导入动态数据

COPY ais_data.dynamic_ships (ID,MMSI,ts,lon,lat,course, speed,heading,rate_of_turn,navigation_status) FROM 'G:/data/dynamic_ships_from_pg.txt';

在这里插入图片描述
查询相关导入的静态数据个数

SELECT COUNT(*) FROM ais_data.dynamic_ships

在这里插入图片描述
在这里插入图片描述

1.3数据可视化

1.3.1新建bing地图

bing的URL

https://t1.dynamic.tiles.ditu.live.com/comp/ch/{q}?mkt=zh-CN&ur=CN&it=G,RL&n=z&og=804&cstl=vb

在这里插入图片描述
如果这边不显示地图的话,记得将坐标系改成4326
在这里插入图片描述

1.3.2 建立矢量数据表

在PostgreSQL数据库中给dynamic_ships表添加时间和空间字段数据,打开pgAdimin(操作介绍在上面帖子),在Query Tool窗口内,分别依次执行如下命令:

alter table ais_data.dynamic_ships add column t timestamp without time zone;--增加t列时间戳

update ais_data.dynamic_ships set t=to_timestamp(ts); --ts数据转换时间戳赋值给t
CREATE INDEX idx_dynamic_ships_t ON ais_data.dynamic_ships using btree(t);--时间戳添加索引

alter table ais_data.dynamic_ships add column geom geometry(Point,4326);--生成geom列

update ais_data.dynamic_ships set geom=st_setSRID(ST_MakePoint(lon,lat),4326);

会生成t和geom列
在这里插入图片描述

如果出现geometry不存在,或者ST_MakePoint不存在,说明安装postgresql没有安装扩展,先去
在这里插入图片描述
在这里插入图片描述
勾选下载即可
在这里插入图片描述
能看到这个
然后回到query中输入以下

CREATE EXTENSION IF NOT EXISTS postgis;

运行就可以了

1.3.3 建立矢量数据表

先打开bing图层,bing的URL

https://t1.dynamic.tiles.ditu.live.com/comp/ch/{q}?mkt=zh-CN&ur=CN&it=G,RL&n=z&og=804&cstl=vb

打开QGIS,在左边面板
在这里插入图片描述

双击打开动态数据图层
在这里插入图片描述

1.3.4 修改图层显示

筛选育明轮相关数据
在这里插入图片描述

1.3.5 给矢量数据显示标签

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尔染君子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值