一种渔船异地停靠信息提取方法与流程

专利2022-06-29  113


本发明涉及渔船船位数据应用
技术领域
,特别是涉及一种渔船异地停靠信息提取方法。
背景技术
:上世纪由于经济发展的不平衡,一些渔业发达地区(挂靠地)从不发达地区(船籍港)购买船只和指标进行渔业生产,导致了渔船挂船籍港的牌照,却在挂靠地长期活动、停靠的现象。异地挂靠渔船主要有两种情况:一是挂靠地的新船主和船籍港的原船主私下达成协议,改变对渔船的实际占有,二是挂靠地的新船主从船籍港的原船主手中购得船只和马力指标,渔船的实际船主为挂靠地的新船主。渔船异地挂靠存在的最大问题就是不好管理。各省为了保证应伏休渔船规定伏休,船籍港和挂靠地渔政部门需要花费大量的人力、物力进行登记、沟通、联络。近海海洋捕捞渔船异地挂靠在伏季休渔、涉外管理和安全生产方面引发了一系列的问题,严重影响了渔业执法监管的有效实施。为了加强渔业管理,从2006年起,我国开始推广基于北斗卫星导航系统的船舶监控系统(vesselmonitoringsystems,vms)船载终端。北斗vms终端可以实时记录渔船的船名、渔船位置的经纬度、航速、航向等信息,并将这些数据自动传送到岸上的监控中心,便于监控中心及时观察和掌握渔船作业情况。据统计目前安装北斗vms终端的渔船已有约7万余艘,cdma公众移动通讯设备11万艘,初步实现对海洋渔船船位的实时联络及跟踪监控,同时获得了大量的具有时空特性的历史船位数据。对这些数据进行统计和深度挖掘分析已经取得了一些相关的研究成果,例如判断捕捞作业状态、捕捞努力量的时空分布,提取渔船捕捞作业航次等。过去判断渔船是否异地挂靠需要手动登记,工作量很大,现在有了丰富的时空精度高的船位数据,可以从这些数据中挖掘出异地挂靠的船只。目前没有专门基于北斗船位数据的渔船异地停靠信息提取的方法,因此需要找到快速的业务化运行的渔船异地停靠信息的计算方法,用来提取基于高时间分辨率的北斗船位数据的渔船异地休渔的管理水平。技术实现要素:本发明所要解决的技术问题是提供一种渔船异地停靠信息提取方法,能够从北斗船位数据中提取渔船的异地停靠。本发明解决其技术问题所采用的技术方案是:提供一种渔船异地停靠信息提取方法,包括以下步骤:(1)从船位观测数据中查找出停船时间段,并记录下这些停船时间段的开始位置和结束位置,根据开始位置和结束位置得到停船时间段的开始时间和结束时间;(2)根据停船时间段的开始时间和结束时间计算这些停船时间段的时长,并按照停船时间段的先后顺序进行排列;(3)按照顺序获取一个停船时间段,并从该停船时间段内记录的停船位置中选出一对经度值和纬度值作为该停船时间段的停船坐标,根据该停船坐标,利用逆地址查询的方式获取停船地所属的省、市、区县;(4)将得到的船名,船籍所在的省、市、县区,停靠时间段的起止时间,停靠时长,停靠地的经纬度坐标,停靠地所属的省、市、县区存入数据库,并查找出异地停靠的船只。所述步骤(1)中通过航速等于0来查找出停船时间段。所述通过航速等于0来查找出停船时间段具体包括以下子步骤:(11)找到所有速度为0的时间段的开始位置和结束位置,根据开始位置和结束位置得到速度为0的时间段的开始时间和结束时间,并根据开始时间和结束时间计算出各速度为0的时间段的时长,将该各速度为0的时间段的时长与第一阈值比较,若小于第一阈值,表示该速度为0的时间段不属于停船时间段;(12)找出所有速度非0的时间段的开始位置和结束位置,根据开始位置和结束位置得到速度非0的时间段的开始时间和结束时间,并根据开始时间和结束时间计算出各速度非0的时间段的时长,将该各速度非0的时间段的时长与第二阈值比较,若小于第二阈值,表示该速度非0的时间段属于停船时间段。所述步骤(2)与步骤(3)之间还包括按照停船时间段的时长从大到小进行排序的步骤。所述步骤(3)中选出一对经度值和纬度值作为停船坐标时,先选择停船时间段序列中的第一对经度值和纬度值作为停船坐标,若该停船坐标利用逆地址查询的方式查询到的结果为空时,则选择停船时间段序列中的最后一对经度值和纬度值作为停船坐标,若该停船坐标利用逆地址查询的方式查询到的结果仍然为空时,则选择最靠岸线位置的一对经度值和纬度值作为停船坐标。在选择最靠岸线位置的一对经度值和纬度值作为停船坐标时,需要剔除船位异常点,剔除方法如下:计算最靠岸线位置的经度值与该停船时间段序列中第一个或者最后一个经度值的差值的绝对值,如果该绝对值大于1°,则表示该最靠岸线位置的经度值为异常值,需要剔除。所述步骤(3)中根据该停船坐标,并利用逆地址查询的方式查询到的结果为非空时,输出船名,船籍所在的省、市、县区,停靠时间段的起止时间,停靠时长,停靠地的经纬度坐标和停靠地所属的省、市、县区。有益效果由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明按照航速等于0,快速找出渔船所有停船的时间段并按照停船时长进行降序排序;按照顺序取一个停船时间段对应的停船地址的经纬度,利用逆地址查询web服务,获得停船地点所属的省、市、区县,如此可以快速获取渔船的停靠信息,从而提高渔船异地休渔的管理水平。附图说明图1是本发明的流程图;图2是本发明实施例的渔船的行驶轨迹和停靠地址图;图3a-3d是本发明实施例的渔船停靠地统计图。具体实施方式下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本发明的实施方式涉及一种渔船异地停靠信息提取方法,如图1所示,包括以下步骤:从船位观测数据中查找出停船时间段,并记录下这些停船时间段的开始位置和结束位置,根据开始位置和结束位置得到停船时间段的开始时间和结束时间;根据停船时间段的开始时间和结束时间计算这些停船时间段的时长,并按照按照停船时长的从长至短进行排列;从排在前10的停船时间段中按照停船时长从长至短的顺序,提取停船的地理位置的经纬度坐标。;如果查询的返回值为空,表示船舶在海中,没有靠岸,则按照顺序选取该停船时间段的下一个停船时间段,进行逆地址查询,直至停船时长为前10的停船时间段全部查询完毕;如果获得了停船的地址则输出船名,船籍所在的省、市、县区,停靠时间段的起止时间,停靠时长,停靠地的经纬度坐标,停靠地所属的省、市、县区,否则返回空。;将结果存入数据库,并查找出异地停靠的船只。本发明能够从北斗船位数据中提取渔船的异地停靠。下面通过一个具体实施例来进一步说明本发明。渔船安装了北斗船载终端后,船载北斗终端间隔约3min中发送船位、时间、航速等信息,每艘船的北斗信息数据由一系列时间序列的船位点、航速等组成。1.读取数据并清洗数据北斗卫星传送的经纬度船位数据的时间分辨率为3min,空间分辨率约为10m,时空精度高,实时性强。北斗船位数据来源于北斗民用分理服务商,数据按照年份和地区分别存储于不同文件夹的船位文件中,一条船对应于一个文件。把船位文件中的数据:船名、时间、经纬度、船速读入内存。经度、纬度、速度和时间分别存储在变量lon,lat,v,t中。船位数据中存在一些异常数据,会影响结果的准确度,因此需在判断停靠地址之前剔除这些异常数据。通过检查船位文件发现存在以下异常需要在这一步剔除:经纬度值为0、时间范围不在所属文件夹名称表示的范围内。经纬度出现在内陆的,极个别的孤点值可以在提取停靠信息的过程中剔除。2.对船速值进行简化处理把大于零的速度都设为1,速度大小的信息可以丢弃,不影响结果。处理速度的表达式为:{vk,h|vk,h>0}=1k,k∈(1,2,3,…,k),h∈(1,2,3,…,h),其中,k表示船舶,h表示该速度在速度矩阵v中的序号,k表示船舶的总数,h表示速度矩阵v的长度。3.查找停船时间段首先,找到所有速度为0的时间段的开始位置pk,i,1和结束位置pk,i,2,根据开始和结束的位置可以得到停船时间段的开始时间t(pk,i,1)和结束时间t(pk,i,2),其中,k∈(1,2,3,…,k)表示船舶,i∈(1,2,3,…,i)表示停船时间段,k表示船舶的总数,i表示第k条船舶的停船时间段总数,下标“1”表示开始,下标“2”表示结束。根据起止位置可以计算出各停船时间段的时长sk.i,得到按照停船时间段的时间先后顺序排列的有序集合sk={sk,i|i∈(1,2,3,…,i)},sk,i=f(pk,i,1,pk,i,2)=t(pk,i,2)-t(pk,i,1)。如果停船时长小于15分钟(经验值),就把这段时间的速度填上1,表示这段时间不属于渔船停靠,可以排除作业过程中船速为0被误判为靠岸的可能,可解决表1中“渔船bd1”的情况,处理的表达式如:{vk,h|h∈(pk,i,1,pk,i,1 1,…,pk,i,2),sk,i<15min}=1。其次,查找所有速度为1的时间段的开始位置qk,g,1和结束位置qk,g,2,根据开始和结束的位置可以得到开船时间段的开始时间t(qk,g,1)和结束时间t(qk,g,2),其中,k∈(1,2,3,…,k)表示船舶,g∈(1,2,3,…,g)表示开船时间段的序号,k表示船舶的总数,g表示第k条船舶的开时间段总数,下标“1”表示开始,下标“2”表示结束。根据起止位置可以计算出开船时间段的时长wk,g,得到按照开船时间段的时间先后顺序排列的有序集合wk={wk,g|g∈(1,2,3,…,g)},wk,g=f(qk,i,1,qk,i,2)=t(qk,i,2)-t(qk,i,1)。如果开船时长小于30分钟(经验值),就把这段时间的速度填上0,表示这段时间不是出海捕鱼,可以排除船舶在港口短距离移动,被误判为出海作业的可能,可解决表1中“渔船bd2”的情况。处理的表达式如:{vk,h|h∈(qk,i,1,qk,i,1 1,…,qk,i,2),wk,g<30min}=0。最后,重新计算所有速度为0的时间段(即停船时间段)的起始位置。并且根据起止位置获得每个停船时间段的停船时长,停船的开始和结束时间并按照时长从长至短排序。表1船位数据注:表中的船名为重新虚构,隐去了真实值。4.排序把停船时间段按照停船时间从长至短排序,理论上可以查找每个停船时间段的地址,但是这样做工作量大,其次也没有必要,例如渔船在休渔期时的停船时长应该是一年中停船时长最长的了,故选择查找停船时间最长的停船地址是合理的。由于船位文件中记录的数据是按照时间先后顺序排列的,故表示的停船时间段也自然是按照时间先后排列的,还需将停船时间段的集合中的元素按照停船时长的从大到小排列,得到有序集合rk,rk={rk,j|rk,j∈sk,rk,1>rk,2>…>rk,n},j∈(1,2,3,…,i),k∈(1,2,3,…,k),j表示重新排序后的停船时间段的序号。在将集合sk中的元素按照停船时长的从大到小排列的过程中,需要记录下重新排序后的停船时间段rk,j在原集合sk中的位置pk,j。5.停船地理位置的经纬度选择从停船时间段的有序集合rk中按照从前至后的顺序取一个停船时间段rk,j出来,可以获得该停船时间段内所有停船位置的经度值xk,j,l=lon(pk,pk,j,1 l-1),纬度值yk,j,l=lat(pk,pk,j,1 l-1),其中,l∈(1,2,3,…,l),这些经度值组成集合xk,j={xk,j,l|l∈(1,2,3,…,l)},纬度值组成集合yk,j={yk,j,l|l∈(1,2,3,…,l)},其中,l为第k条船的第pk,j个停船时间段记录的总条数,l为对应停船时间段内记录的序号。从该次停船的经纬度集合中选出一对经纬度坐标作为该停船时间段的停船地点的坐标(xk,j,l,yk,j,l),例如直接选第一个(xk,j,1,yk,j,1),这样速度最快。获得经纬度后,利用高德地图提供的逆地址查询服务来确定具体的地址。设逆地址的查询函数为frev,则可得[province,city,district]=frev(xk,j,1,yk,j,1)。如果为空,表示在海里,直接选择最后一对经纬值来查询:[province,city,district]=frev(xk,j,l,yk,j,l)。如果首尾的经纬度得到的地址的值都为空,那么利用最靠岸线的位置来获得地址。最靠岸线的位置应该是经度最小的点,设为xk,j,l=fmin(xk,j),由于经纬度会出现异常值,如出现在内陆的孤点,所以有时经度最小的船位点是异常的,需要剔除这些异常值。剔除的方法:因为第一个和最后一个经纬度值已经经过逆地址查询为空,表明在海里,不可能是在内陆省份的孤点。所以计算该船位点的最小经度值与该停船时间段记录的第一个或者最后一个船位的经度之间的差值的绝对值,如果大于1°,表示该最小值为异常值,则删除该条记录,因为船速为0的情况下,渔船的两个船位点的经纬度差值很小,不可能超过1°,公式如下:{xk,j,l|xk,j,l=fmin(xk,j),|xk,j,l-xk,j,1|>1}=φ,循环做该剔除孤点的操作,直至删除此停船时间段内的所有异常船位。删除完异常船位后,从剩下的船位中选择经度值最小的船位点作为该次停船的地理位置:[province,city,district]=frev(xk,j,l,yk,j,l)其中,xk,j,l=fmin(xk,j)。如果利用高德地图逆地址查找后返回值还是空,那么表示船还在海里,没有靠岸,令j=j 1,从按照停船时间长短排序的有序集合rk中选择第j个元素rk,j,即选择下一个停船时间段,重复上面的步骤。理论上可以遍历所有停船时间段,直至找到地址。考虑到高德地图的免费逆地址查询服务有次数限制和计算的时效性,从停靠时长最长的开始查询,一条渔船最多只会查找排在前10的停靠地址,如果停靠时长最长的10次停靠查询结果都返回空,那么结果就返回空了。如果返回了实际的省、市、县区,那么记录该次停靠在文件中的起止位置,起止时间,纬度,经度和停船时长,否则记录值为空。6.逆地址查找高德地图提供了逆地址查询web服务,url的格式如下:https://restapi.amap.com/v3/geocode/regeo?location=lon,lat&key=yourkey&output=json,其中的‘lon’和‘lat’处输入实际要查询的地理坐标经纬度,‘yourkey’是在高德开放平台上申请的应用服务的key码。例如在浏览器地址栏中输入:https://restapi.amap.com/v3/geocode/regeo?location=121.6511,28.7161&key=18c31c4911ca87e9a28a21f957c70c13&output=json,返回值为:{"status":"1","regeocode":{"addresscomponent":{"city":"台州市","province":"浙江省","adcode":"331082","district":"临海市","towncode":"331082113000","streetnumber":{"number":[],"direction":[],"distance":[],"street":[]},"country":"中国","township":"上盘镇","businessareas":[[]],"building":{"name":[],"type":[]},"neighborhood":{"name":[],"type":[]},"citycode":"0576"},"formatted_address":"浙江省台州市临海市上盘镇白沙岛"},"info":"ok","infocode":"10000"}7.数据输出根据上述方法提取到的渔船停靠信息的输出内容包括船名、停靠的起止时间、停靠时长(天)、纬度、经度、省、市、区县、开始、结束。其中的开始和结束是指停船时间段在船位记录文件中的起止位置,便于后期查询。同时,根据船名可以得到的渔船船籍所属的省、市、区县也需要填入表格,可以和停船位置对照,从而判断是否属于异地停靠。输出的数据内容如表2所示,表3为渔船停靠信息输出的具体样例。表2输出内容字段名称说明shipname船名ssheng船籍所在省sshi船籍所在市sxian船籍所在县区time_start停靠开始时间time_end停靠结束时间time_interval停靠时长lat停靠纬度lon停靠经度psheng停靠地所在省pshi停靠地所在市pxian停靠地所在县区id_start在船位文件中记录的开始位置id_end在船位文件中记录的结束位置表3渔船停靠信息注:表中的船名为重新虚构,隐去了真实值。8.异地停靠信息提取将这些数据存入access数据库,然后就可以利用sql语句查找异地停靠的船只。设存储数据的表名为“停靠”,查找省外停靠的渔船可以使用sql语句:select*from停靠wheressheng<>psheng,查找省内跨市停靠的渔船可以使用sql语句:select*from停靠wheressheng=pshengandsshi<>pshi,查找市内跨区停靠的渔船可以使用sql语句:select*from停靠wheressheng=pshengandsshi=pshiandsxian<>pxianandsxian<>sshi。9.渔船停靠信息的分析图2中两张图的数据分别来自四条渔船2018年北斗vms终端记录的船位数据,图中的线条表示渔船航行的轨迹线,深色和浅色实心点表示渔船停靠时长最长的10次停靠的位置,其中深色实心点表示最终选定的停靠时长最长的停靠位置。因为渔场经常重复在同一地点停靠,所以深色和浅色实心点有重叠的部分。从图2中可见从停靠时长最长的10次停靠中按照时长从长至短的顺序能够找到该渔船休渔期停靠的地址,因为一般来说,渔船在休渔期时的停靠时间是一年中停船时间最长的。表4中显示了图2中的四条渔船停船的详细信息,主要是从各渔船的停船时长最长的前10次停船中选择了前5次的停船信息。鉴于伏季休渔期间,渔船停靠的时长最长,故选择具有代表性的停船时长最长的停船作为该渔船的伏季休渔停靠地点,加粗的行表示最终选定的渔船的停船信息。渔船bd00108的船籍在浙江省台州市三门县,2018年中它的停船时长最长43天,位置在(121.4586°e,29.11058°n),停靠地和船籍地一致。渔船bd00109的船籍地为浙江省台州市温岭市,其2018年最长停船天数为98天,停船位置为(121.5207°e,28.49295°n),停靠地和船籍地一致。渔船bd00110的船籍地和渔船bd00109的相同,最长停船天数为71天,停船的经纬度为(121.6421°e,28.29702°n),停靠地和船籍地一致。渔船bd00111的船籍地为浙江省台州市路桥区,停船最长时间为82天,位置为(121.5236°e,28.49222°n),地址为浙江省台州市温岭市,属于同市不同区停靠。渔船bd00109有一次4天的停船,位置在(122.4449°e,30.74551°n),渔船bd00111有一次6天的停船,位置在(122.4132°e,30.69042°n),这两次的查询结果为空,表示在海上,如在海上的浅色实心点所示。表4渔船停靠详细信息注:表中的船名为重新虚构,隐去了真实值。下面以浙江省渔船为例,提取了2018浙江省渔船停靠地所在的省、市、县区,数据格式如表3所示,总共提取了7154条数据,分布在浙江省的台州、温州和舟山市。跨省停靠的共197艘,占比2.75%,其中台州市21艘,温州市117艘,舟山市59艘,如图3a中的“跨省停靠”图所示。省内跨市停靠的共419艘,占比5.86%,其中台州市289艘,温州市58艘,舟山市72艘,如图3b中的“省内跨市停靠”图所示。市内跨区停靠的共有1116艘,占比15.6%,其中台州市800艘,温州市107艘,舟山市209艘,如图3c中的“市内跨区停靠”图所示。按照该规定在船籍所属港内停靠的共5420艘,占比75.76%,其中台州市2807艘,温州市1001艘,舟山市1612艘,如图3d中“按照船籍港停靠”图所示。通过浙江省北斗船位数据的验证,表明该方法适用于从北斗船位数据中提取渔船异地停靠的信息。当前第1页1 2 3 
技术特征:

1.一种渔船异地停靠信息提取方法,其特征在于,包括以下步骤:

(1)从船位观测数据中查找出停船时间段,并记录下这些停船时间段的开始位置和结束位置,根据开始位置和结束位置得到停船时间段的开始时间和结束时间;

(2)根据停船时间段的开始时间和结束时间计算这些停船时间段的时长,并按照停船时间段的先后顺序进行排列;

(3)按照顺序获取一个停船时间段,并从该停船时间段内记录的停船位置中选出一对经度值和纬度值作为该停船时间段的停船坐标,根据该停船坐标,利用逆地址查询的方式获取停船地所属的省、市、区县;

(4)将得到的船名,船籍所在的省、市、县区,停靠时间段的起止时间,停靠时长,停靠地的经纬度坐标,停靠地所属的省、市、县区存入数据库,并查找出异地停靠的船只。

2.根据权利要求1所述的渔船异地停靠信息提取方法,其特征在于,所述步骤(1)中通过航速来查找出停船时间段。

3.根据权利要求2所述的渔船异地停靠信息提取方法,其特征在于,所述通过航速等于0来查找出停船时间段具体包括以下子步骤:

(11)找到所有速度为0的时间段的开始位置和结束位置,根据开始位置和结束位置得到速度为0的时间段的开始时间和结束时间,并根据开始时间和结束时间计算出各速度为0的时间段的时长,将该各速度为0的时间段的时长与第一阈值比较,若小于第一阈值,表示该速度为0的时间段不属于停船时间段;

(12)找出所有速度非0的时间段的开始位置和结束位置,根据开始位置和结束位置得到速度非0的时间段的开始时间和结束时间,并根据开始时间和结束时间计算出各速度非0的时间段的时长,将该各速度非0的时间段的时长与第二阈值比较,若小于第二阈值,表示该速度非0的时间段属于停船时间段。

4.根据权利要求1所述的渔船异地停靠信息提取方法,其特征在于,所述步骤(2)与步骤(3)之间还包括按照停船时间段的时长从大到小进行排序的步骤。

5.根据权利要求1所述的渔船异地停靠信息提取方法,其特征在于,所述步骤(3)中选出一对经度值和纬度值作为停船坐标时,先选择停船时间段序列中的第一对经度值和纬度值作为停船坐标,若该停船坐标利用逆地址查询的方式查询到的结果为空时,则选择停船时间段序列中的最后一对经度值和纬度值作为停船坐标,若该停船坐标利用逆地址查询的方式查询到的结果仍然为空时,则选择最靠岸线位置的一对经度值和纬度值作为停船坐标。

6.根据权利要求5所述的渔船异地停靠信息提取方法,其特征在于,在选择最靠岸线位置的一对经度值和纬度值作为停船坐标时,需要剔除船位异常点,剔除方法如下:计算最靠岸线位置的经度值与该停船时间段序列中第一个或者最后一个经度值的差值的绝对值,如果该绝对值大于1°,则表示该最靠岸线位置的经度值为异常值,需要剔除。

7.根据权利要求1所述的渔船异地停靠信息提取方法,其特征在于,所述步骤(3)中根据该停船坐标,并利用逆地址查询的方式查询到的结果为非空时,输出船名,船籍所在的省、市、县区,停靠时间段的起止时间,停靠时长,停靠地的经纬度坐标和停靠地所属的省、市、县区。

技术总结
本发明涉及一种渔船异地停靠信息提取方法,包括以下步骤:从船位观测数据中查找出停船时间段,并记录下这些停船时间段的开始位置和结束位置,根据开始位置和结束位置得到停船时间段的开始时间和结束时间;根据停船时间段的开始时间和结束时间计算这些停船时间段的时长,并按照停船时长的从长至短进行排列;从排在前10的停船时间段中按照停船时长从长至短的顺序,提取停船的地理位置的经纬度坐标,并按照顺序依次获取每一个停船时间段,并采用逆地址查询的方式获取停船地所属的省、市、区县;将得到的停船地所属的省、市、区县存入数据库,并查找出异地停靠的船只。本发明能够从北斗船位数据中提取渔船的异地停靠。

技术研发人员:范秀梅;张胜茂;杨胜龙;王斐;朱文斌;于航盛;张收元
受保护的技术使用者:中国水产科学研究院东海水产研究所;上海峻鼎渔业科技有限公司
技术研发日:2020.01.17
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-37548.html

最新回复(0)