1、服务介绍
1.1 模型说明
- 包含离线和实时两个能力,实时相比于离线,会有基于景区的票务闸机、视频客流统计的IoT数据导入,结果预测准确度预计高20%
- 以景区为目的地的票务相关旅游咨询、预订(取消)、实际出售票、退票等为基础数据,对于目的地景区小时、日(周、月)进行相应的整体客户量以及售票量、售票收入进行统一预测,为整体景区管理、安防建设、周边交通咨询等提前做好支持。
1.2 接口及收费维度
模块 | 售卖细分维度 | 数据输出 | 包含指标与定义说明 |
---|---|---|---|
数据质量监测 | 实时小时/日/周/月级别(默认T-1天数据) | 累计记录数 异常值(空值)累计数 物理存储值 |
所有数据源采集情况说明,便于检查数据来源异常 |
景区实时游客画像 | 实时小时/日/周/月级别 | 总数 | |
实时小时/日/周/月级别 | 性别比例 | ||
实时小时/日/周/月级别 | 年龄比例,以10岁为单位展示(柱状图) | ||
实时小时/日/周/月级别 | 特殊人群占比(按照证件类型展示、柱状图) | ||
实时小时/日/周/月级别 | 票类型(柱状图) | ||
实时小时/日/周/月级别 | 基于小时维度的客流值 | ||
景区实时客流偏好 | 实时小时/日/周/月级别 | 不同时间段的指定年龄段客流量 | 以年龄作为主维度交叉的客流预测, 主维度:年龄 交叉值:性别、时间段 指标:客户数 |
实时小时/日/周/月级别 | 不同性别的指定年龄段客流量 | ||
实时小时/日/周/月级别 | 不同时间段的不同性别客流量 | ||
客源地 | 实时(小时)游客客源地分析 | 客源地来源图 | 当前一小时到达景区的游客来源地分布 |
实时省份来源排名 | 当前一小时到达景区的游客来源地按省份排名top10 | ||
实时城市来源排名 | 当日到达景区的游客来源地按城市排名top10 | ||
省内省外占比 | 按景区所在省份统计省内省外来源地占比 | ||
省内城市来源排名 | 当日到达景区的游客来源地按河南省内城市排名top10 | ||
历史(日/周/月级别)游客客源地分析 | 按省份统计来源 | 在指定时间按省份统计游客常驻地 | |
按城市统计来源 | 在指定时间按城市统计游客常驻地 | ||
按区县统计来源 | 在指定时间按区县统计游客常驻地 | ||
实时客流预测 | 实时小时/日/周/月级别 | 指定时间段的客流量 | |
实时智能预警 | 实时小时/日/周级别 | 低 | 明天客流量拥挤指数低,请做好日常接待,关注紧急情况。 |
实时小时/日/周级别 | 中 | 明天客流局部可能有拥挤情况,请关注热门景点区域。 | |
实时小时/日/周级别 | 较高 | 明天客流量拥挤度较高,请关注游客热门路线区域,并做好出入口引导管理。 | |
实时小时/日/周级别 | 高 | 明天客流量拥挤度高,请提前在重要景点设置工作人员,避免踩踏事件 |
2、接入指南
2.1 API说明
统计数据查询接口,所有文旅相关的统计查询都是用这一个接口,根据model查询不同的统计数据。
Path | 版本 | 是否登录 |
---|---|---|
/tourism/statistics/query | 1.0.0 | 否 |
入参
参数名 | 数据类型 | 是否必填 | 参数描述 |
---|---|---|---|
projectId | String | Y | 项目Id |
model | String | Y | 模型名称,具体模型名称参考对照表 |
paramJson | String | N | json格式 |
paramJson根据模型需要传相应的参数(具体参数见模型示例),可用参数如下:
参数名 | 数据类型 | 是否必填 | 参数描述 |
---|---|---|---|
startTime | String | N | 开始时间(>=,包含该时间) |
endTime | String | N | 结束时间(<,不包含该时间) |
size | Integer | N | 数据topN条数 |
出参
参数名 | 数据类型 | 参数描述 |
---|---|---|
code | Int | 错误码,code=200表示正确,其他表示错误 |
message | String | 结果信息,正确为success,错误的时候是错误提示 |
data | JSONObject | 结果数据 |
-series | JSONArray | 结果数据系列集合,可以理解为多个数据列,每个系列代表一列数据 |
—name | String | 数据系列名称 |
—values | JSONArray | 数据系列值的集合 |
2.2 API调用方式
SDK依赖
本例提供java sdk pom依赖示例,更多语言SDK详情请参考API调用对接指引
<dependency>
<groupId>com.aliyun.api.gateway</groupId>
<artifactId>sdk-core-java</artifactId>
<version>1.6.0.3</version>
</dependency>
示例代码
HttpClientBuilderParams builderParams = new HttpClientBuilderParams();
builderParams.setAppKey("${appKey}"); // 请填写正确的AppKey
builderParams.setAppSecret("${appSecret}"); // 请填写正确的AppSecret
ApacheHttpClient apacheHttpClient = new ApacheHttpClient(builderParams);
IoTApiRequest request = new IoTApiRequest();
//设置api的版本
request.setApiVer("1.0.0");
//如果需要登录,设置当前的会话的token
//设置参数
request.putParam("model", "xxxxxx");
request.putParam("projectId", "yyyyy");
Map<String, Object> param = new HashMap<>(8);
param.put("startTime", "2019-01-01");
param.put("endTime", "2019-01-31");
param.put("limit", 10);
request.putParam("paramJson", JSONObject.toJSONString(param));
//请求参数域名、path、request
String host = "api.link.aliyun.com";
String path = "/tourism/statistics/query";
System.out.println(JSON.toJSONString(request));
ApiRequest apiRequest = new ApiRequest(HttpScheme.HTTP, host,
HttpMethod.POST_BODY, path, JSON.toJSONBytes(request));
apiRequest.setHttpConnectionMode(HttpConnectionModel.MULTIPLE_CONNECTION);
ApiResponse response = apacheHttpClient.sendSyncRequest(apiRequest);
System.out.println(request.getId());
System.out.println(
"response code = " + response.getCode() + " response message = " + response.getMessage()
+ " response content = " + new String(response.getBody(),
"utf-8"));
2.3 模型示例
数据质量监测
model:TRIP_DATA_QUALITY
对游客购票数据、游客闸机数据等使用到的数据质量的监测,包含数据总条数、空值条数、占用存储空间大小。
入参
{
"model": "TRIP_DATA_QUALITY",
"projectId": "a124DRzr6OWgL4QT",
"paramJson":"{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["20"],
"name": "总条数"
}, {
"values": ["5"],
"name": "存储空间"
}, {
"values": ["4"],
"name": "空值条数"
}]
},
"message": "success"
}
客流预测
model:TRIP_CUSTOMER_FLOW_FORECAST
通过历史游客购票数据、闸机数据等,预测未来一段时间内的游客数量。
入参
{
"model": "TRIP_CUSTOMER_FLOW_FORECAST",
"projectId": "a124DRzr6OWgL4QT",
"paramJson":"{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}
}
出参
{
"code": 200,
"data": {
"series": [{
"name": "30天", // 未来30天
"values": ["10192"]
}, {
"name": "1天", // 未来1天
"values": ["362"]
}, {
"name": "1小时", // 未来1小时
"values": ["63"]
}, {
"name": "7天", // 未来7天
"values": ["5212"]
}]
},
"message": "success"
}
实时智能预警
model:TOURIST_INTEL_PREDICTION_INFO
通过预测未来一天的游客量和景区最大客流容量来估算拥挤指数,提供相应的预案。
拥堵指数 | 预案 |
---|---|
低 | 明天客流量拥挤指数低,请做好日常接待,关注紧急情况。 |
中 | 明天客流局部可能有拥挤情况,请关注热门景点区域。 |
较高 | 明天客流量拥挤度较高,请关注游客热门路线区域,并做好出入口引导管理。 |
高 | 明天客流量拥挤度高,请提前在重要景点设置工作人员,避免踩踏事件 |
入参
{
"model": "TOURIST_INTEL_PREDICTION_INFO",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"id": "91068e57-42fb-4a5b-9352-9f4773872c0c",
"code": 200,
"message": null,
"localizedMsg": null,
"data": {
"series": [
{
"values": [
"明天客流局部可能有拥挤情况,请关注热门景点区域。"
],
"name": "预测信息"
}
]
}
}
游客画像统计(性别)
model:TRIP_CUSTOMER_GENDER_DISTRIBUTION
查询一段时间内,不同性别的游客人数。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_CUSTOMER_GENDER_DISTRIBUTION",
"projectId": "a1240HWzFfFNJ3wI"
}
出参
{
"code": 200,
"data": {
"series": [{
"name": "性别",
"values": ["未知", "女", "男"]
}, {
"name": "人数",
"values": ["140", "190", "210"]
}]
},
"message": "success"
}
游客画像统计(年龄)
model:TRIP_CUSTOMER_AGE_DISTRIBUTION
查询一段时间内,不同年龄段的游客人数。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_CUSTOMER_AGE_DISTRIBUTION",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [ {
"values": ["10-20", "20-30", "30-40"],
"name": "年龄"
}, {
"values": ["35.0", "7.0", "3.0"],
"name": "人数"
}]
},
"message": "success"
}
游客画像统计(人群)
model:TRIP_CUSTOMER_IDENTITY_TYPE_DISTRIBUTION
查询一段时间内,不同人群的游客人数。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_CUSTOMER_IDENTITY_TYPE_DISTRIBUTION",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["学生证", "身份证", "军官证"],
"name": "人群"
}, {
"values": ["7.0", "15.0", "23.0"],
"name": "人数"
}]
},
"message": "success"
}
游客画像统计(票务类型)
model:TRIP_CUSTOMER_TICKET_TYPE_DISTRIBUTION
查询一段时间内,不同票型的游客人数。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_CUSTOMER_TICKET_TYPE_DISTRIBUTION",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["区间票", "次票", "年票"],
"name": "票型"
}, {
"values": ["17.0", "587.0", "3.0"],
"name": "人数"
}]
},
"message": "success"
}
游客画像统计(客流趋势)
model:TRIP_CUSTOMER_FLOW_STATISTICS_BY_HOUR
查询历史一段时间内,客流量的变化趋势。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_CUSTOMER_FLOW_STATISTICS_BY_HOUR",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["10", "20", "30", "40", "50", "60", "70", "80", "90"],
"name": "人数"
}, {
"values": ["02:00", "03:00", "04:00", "05:00", "06:00", "07:00", "08:00", "09:00", "10:00"],
"name": "时间"
}]
},
"message": "success"
}
实时游客偏好(年龄-时间)
model:TRIP_TIME_AGE_CUSTOMER_FLOW_STATISTICS_BY_HOUR
查询一段时间内,不同年龄-时间的偏好对比数据。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_TIME_AGE_CUSTOMER_FLOW_STATISTICS_BY_HOUR",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["女", "女", "未知", "未知", "男", "男"],
"name": "性别"
}, {
"values": ["44", "47", "45", "48", "46", "43"],
"name": "人数"
}, {
"values": ["10-08 03:07", "10-08 07:00", "10-08 02:00", "10-08 08:00", "10-08 02:00", "10-08 02:05"],
"name": "时间"
}]
},
"message": "success"
}
实时游客偏好(年龄-性别)
model:TRIP_AGE_GENDER_CUSTOMER_FLOW_STATISTICS
查询一段时间内,不同年龄-性别的偏好对比数据。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_AGE_GENDER_CUSTOMER_FLOW_STATISTICS",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["女", "未知", "男", "女", "未知", "男"],
"name": "性别"
}, {
"values": ["498", "513", "483", "544", "558", "528"],
"name": "人数"
}, {
"values": ["10-20", "10-20", "10-20", "20-30", "20-30", "20-30"],
"name": "年龄"
}]
},
"message": "success"
}
实时游客偏好(性别-时间)
model:TRIP_TIME_GENDER_CUSTOMER_FLOW_STATISTICS_BY_HOUR
查询一段时间内,不同性别-时间的偏好对比数据。
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TRIP_TIME_GENDER_CUSTOMER_FLOW_STATISTICS_BY_HOUR",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["女", "女", "未知", "未知", "男", "男"],
"name": "性别"
}, {
"values": ["44", "47", "45", "48", "46", "43"],
"name": "人数"
}, {
"values": ["10-08 03:07", "10-08 07:00", "10-08 02:00", "10-08 08:00", "10-08 02:00", "10-08 02:05"],
"name": "时间"
}]
},
"message": "success"
}
客源地(省份)
model: TOURIST_REGION_PROVINCE
按省份查询游客来源地
入参
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\"}",
"model": "TOURIST_REGION_PROVINCE",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["浙江", "湖北", "上海", "陕西", "青海"],
"name": "province"
}, {
"values": ["4", "3", "2", "1", "1"],
"name": "count"
}]
},
"message": "success"
}
客源地(城市)
model: TOURIST_REGION_CITY
按城市查询游客来源地
入参
provice非必填,为空时,查询全国的城市
{
"paramJson": "{\"startTime\":\"2019-09-09\",\"endTime\":\"2019-10-09\", \"topN\":10, \"provice\":浙江}",
"model": "TOURIST_REGION_CITY",
"projectId": "a124KKWfyglJF5rD"
}
出参
{
"code": 200,
"data": {
"series": [{
"values": ["杭州市", "湖州市", "绍兴市"],
"name": "city"
}, {
"values": ["2", "1", "1"],
"name": "count"
}]
},
"message": "success"
}