通过用户POI经纬度获取居住地的房价信息

1.Arcmap处理数据

1.1 建立Map和GDB

·

1.2 加载数据

  • 选择数据

1

  • 选择坐标维度和坐标系统

3

接着会有个提示,直接点OK即可。

然后会在图层里面出现一个原数据文件名 Events拼起来的图层。

1.3加载地图

添加矢量天地图
4

1.4 导出为点数据

5

1.5 过滤错误数据

6

1.6 将过滤后的数据保存为新图层

7

1.7 转换坐标系为3857

8

9

1.8 IDW插值

10

11

12

13

1.9 绘制渔网图Fishnet

14

15

16

1.10 Zonal Statistics As Table

17

1.11 用fishnet和Zonal Statistics进行关联,获取平均价格

选中fishnet_3857_target图层,右键,Joins and Relates,然后选中Join

18

19

20

1.12 转换为4326坐标系

使用Project工具,选择坐标系4326
21

1.13 4326坐标系的fishnet图层增加行列属性,并赋值

  • 4326坐标系的fishnet图层增加行列属性:

22

  • 行列赋值

第一步,读取列数,找到最右下角的渔网格子,获取OID即可
23

第二步,赋值

24

25

1.14 导入数据到数据库中

26

27

2.Oracle加工

2.1 计算每个渔网格长款对应的经纬度

  • 获取渔网的经纬度范围
    28

纬度范围是:
30.422475
30.980535

经度范围是:
103.655354
104.443625

  • 获取渔网格子的行和列数目
select max(frow),max(fcol) from
ss_dm.simon_house_price_chengdu;

得到结果是:

max(frow)max(fcol)
288351

可以算出:
経度差:0.788271
纬度差:0.55806

一个格子的经度是:0.788271/351,为0.0022457863247863
一个格子的纬度是:0.55806/288,为0.0019377083333333

2.2 和Home POI关联,获取每个用户居住地的房价

可以参考下面的语句

create table simon_rsprice_chengdu nologging as
select /*+parallel(a,8)*/
a.user_id,
b.meanprice
from cip.homework_poi a,simon_house_price_chengdu b
where a.province='081' and a.date_dt = date '2017-06-01'
and ceil((a.top1_home_lon - 103.655354) / 0.0022457863247863) =b.fcol
and ceil((a.top1_home_lat - 30.422475 ) / 0.0019377083333333) =b.frow;

更好的方法是把成都用户筛选出来,把POI的坐标也提取出来,按城市进行计算。

3.HDFS存储

3.1 导出数据

  • simon_rsprice_chengdu导出脚本
spool  /home/simon/simon_rsprice_chengdu.dat
set pagesize 0
set echo off;
set heading off ;
set termout off;
set trimspool on;
set feedback off ;
set term off ;
set termout off; 
set serveroutput off;
SET LINESIZE 2500;
select a.user_id||'|'||a.meanPrice from simon_rsprice_chengdu a;
spool off ;
  • 执行脚本命令
#!/bin/bash
source ~/.bash_profile
START_TIME=`date +'%s'`
sqlplus -s user/password@db<<EOF //注意用户名密码
@/home/simon/spool.sql
EOF
END_TIME=`date +'%s'`
DURATION=`expr "$END_TIME" - "$START_TIME"`
echo $DURATION

3.2 上传到HDFS目录

HDFS目录为:

/user/simon/spendingpower/basicinfo/rsprice/csv_1_0/chengdu
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值