EXCEL编码工具需求说明
基于EXCEL函式加PYTHON写的编码工具。编码工具是用国码、区码加上一些标准码(代表广播电台或电视台)产生一个预先定义好格式的ID用。EXCEL分为一个主工作表:用于编码产生ID以及其他REFERENCE EXCEL档用于存放如ISO编码列表引入参照数据。此编码工具用于产生有规则的ID采用类似IRUC Callsign的格式。IRUC Callsign格式规范如下:
CCNXXX-DB
WHEREIN:
CC = Country Code¹
N = Region Code²
XXX = Call Letters³
DB = Digital Broadcast (Service Type)
详见
http://www.iruc.org/docs/prefix.shtml
按照以上规范
建立REFERENCE EXCEL放置 ISO-3166国码与区码
用于在主工作表上查询或引入代码进行编码
ISO-3166当包括ISO-3166-1 / ISO-3166-2
https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
以中国为例
Alpha Code:CN
Numeric Code:156
字段 A ~ M代表EXCEL的单元格
SN HEX为序号 16进位
SN DEC 为序号10进位
序号代表该笔资料的流水号
下表当中的字符串代表域名
A
B
C
D
E
F
G
H
I
J
SN HEX
SN DEC
BROADCAST
ID
PI
CODE
BROADCAST
NAME
BROADCAST
CALLSIGN
COUNTRY
CODE
REGION
CODE
CALL
LETTER
LICENSE
CODE
K
L
M
CITY OF LICENSE
LOCATION
SERVICE
TYPE
数据产生说明
• A 序号
A根据B输入的值产生(B输入的值为10进位 A产生16进位)
• BroadcastID
C根据G加H加I或J其中一个字段的值产生 PRIORITY取I
I为4位数字须转16进位 最大表示值为FFFF
• D根据RDF编码规范由F产生
RDF编码规范参见以下链接
https://www.fmsystems-inc.com/rds-pi-code-formula-station-callsigns/
• E为手输入
• G引用参照其他EXCEL档单元格内的ISO-3166代码
• H根据G选择COUNTRY CODE引用参照其他EXCEL档内储存的ISO-3166 REGION CODE代码
• CALL LETTER为手输入
• LICENSE CALL为4位构成的数字需要转换16进位 最大表示值为FFFF 代表时进位最高可以编入5位缩码
• J根据H取得区码全名 H为ISO区码缩码
• K由H参照ISO-3166的区码全称取得
• L根据K使用API由在线地图OPENSTREETMAP取得经纬度坐标
• M下拉选单选取编码步骤
步骤说明
举例当选则国码后下拉选单调用区码EXCEL内的单元格数据用于验证数据格式
如电台设立于北京市需要输入非下拉选单
输入北京CN-BJ取出BJ
https://zh.wikipedia.org/wiki/ISO_3166-2:CN
先把CN+BJ取出再取出CALL LETTER。如CALL LETTER字段为NULL则取LICENSE CODE内的值(输入时为10进位数字转16进位)+SERVICE TYPE(AM / FM / DB / SR / CD)5选一构成。(写一个判断式如如输入字段电台有CALL LETTER则取用CALL LETTER如单元格内的值为NULL则取用LICENSE CODE编码进行编码。LICENSE CODE是用来当某国家电台没使用CALLSIGN时(因为CALLSIGN的构成是REGION CODE+CALL LETTER电台名称英文字母缩写组成)自然也没有CALL LETTER。因此可选用国家审查机关提供的业者代码LICENSE CODE转编。此编码规则最高支持4位。业者代码默认为数字最高4位。以16进位表示最高LICENSE CODE支持65535即FFFF)
需求工作
建立3166-1国码EXCEL参照表(设定单元格范围用于在编码数据用主要工作文文件产生下拉选单)列表内字段元要有2位字母码、3位字母码、3位数字码。默认选用2位字母码用于决定调用国别区码参照表参照ISO-3166列表说明如下:
3166-1.XLS
3166-1 COUNTRY CODE
ALPHA 2
CODE
ALPHA 3
CODE
NUMERIC CODE
建立3166-2子集国别区码EXCEL参照表(设定单元格范围用于在编码数据用主要工作文文件产生下拉选单)以中国为例当选择参照表为CN时调用3166-2-CN的EXCEL表格引入单元格内的VALUE。如为台湾则选用3166-2-TW如为日本则选用3166-2-JP以此类推。
3166-2-CN.XLS
3166-2 REGION CODE
CODE
REGION NAME
REGION CATEGORY
各国广播电台列表EXCEL(用于验证第一份主要工作档EXCEL的电台名称值、确保数据一致DATA CONSISTENCY)需要写个爬虫或使用OPEN DATA或国家提供的API取得
需要
中国 = CN
台湾 = TW
香港 = HK
日本 = JP
南韩 = KR
美国 = US
英國 = UK
所建立各国广播电台列表EXCEL须具备下表字段元与数据:
A
B
C
D
E
F
N
SN
BROADCAST NAME
BROADCAST TYPE
DELIVERY TYPE
STATION NAME / SERVICE CHANNEL(COVER REGION)
STATION NAME / SERVICE CHANNEL(COVER REGION)
STATION NAME / SERVICE CHANNEL(COVER REGION)
成果
于第一份主要工作档内产生BROADCAST ID把COUNTRY CODE+REGION CODE+CALL LETTER(或转16进位的LICENSE CODE)与SERVICE TYPE加起来构成BROADCAST ID。中间以横杠-DASH字符区隔。
PS:
各国COUNTRY CODE与REGION CODE加上CALL LETTER形式上大同小异但引用标准码不同。举例日本的广播电台CALLSIGN是ITU国际电信联盟分派的AREA / REGION CODE(ZONE)组成不是ISO-3166标准码。而英国则用ISO的行政区码取代REGION CODE跟CALL LETTER搭配起来组织成CALLSIGN。美国则是DE FACTO惯例上用K / W分东西岸加上电台的CALL LETTER。为了建立统一标准不管世界各地采用的惯例编码引用国码、区码为何统一采用本文檔引用ISO-3166的国码、区码。