的Base64编码SAS计划

2024-05-19 01:40:25 发布

您现在位置:Python中文网/ 问答频道 /正文

在SAS星球是一个俄罗斯软件,用Delphi编写,可以从许多服务器下载卫星图像(sasgis.org网站). 它很棒,我经常使用它,但是如果我能插入我自己的数据就更好了。它将数据存储在一个名为标记.sml,基本上是一个xml文件。例如:

<?xml version="1.0" standalone="yes"?> 
<DATAPACKET Version="2.0"><METADATA><FIELDS>
<FIELD attrname="id" fieldtype="i4" readonly="true" SUBTYPE="Autoinc"/>
<FIELD attrname="name" fieldtype="string" WIDTH="255"/>
<FIELD attrname="descr" fieldtype="bin.hex" SUBTYPE="Text"/>
<FIELD attrname="scale1" fieldtype="i4"/><FIELD attrname="scale2" fieldtype="i4"/>
<FIELD attrname="lonlatarr" fieldtype="bin.hex" SUBTYPE="Binary"/>
<FIELD attrname="lonL" fieldtype="r8"/>
<FIELD attrname="latT" fieldtype="r8"/>
<FIELD attrname="LonR" fieldtype="r8"/>
<FIELD attrname="LatB" fieldtype="r8"/>
<FIELD attrname="color1" fieldtype="i4"/>
<FIELD attrname="color2" fieldtype="i4"/>
<FIELD attrname="visible" fieldtype="boolean"/>
<FIELD attrname="picname" fieldtype="string" WIDTH="255"/>
<FIELD attrname="categoryid" fieldtype="i4"/></FIELDS>
<PARAMS AUTOINCVALUE="3"/></METADATA><ROWDATA>
<ROW id="1" name="Prueba1" descr="06/04/2015 9:48:56" scale1="2" scale2="0" lonlatarr="ANBXOtFZZY8FwABITxpq702zBMAgSCcJANBXOlGCU48FwABA1S48rk+zBMAgSCcJANBXOlEvPY8FwACo0VkXqlWzBMAgSCcJANBXOtGRPI8FwADYDRHFYGKzBMAgSCcJ" lonL="-71.69795087659068" latT="-44.826108606201" LonR="-71.61829999768443" LatB="-44.84607227245893" color1="-1493237760" color2="0" visible="TRUE" picname="" categoryid="1"/>
<ROW id="2" name="Prueba Polygon" descr="06/04/2015 10:16:25" scale1="2" scale2="0" lonlatarr="ANBXOtEeN48FwABAFiGe6lSzBMD89hIAANBXOlGPN48FwAAoQlXdQGKzBMD89hIAANBXOtELLI8FwACAC5X1IGKzBMD89hIAANBXOlEUK48FwACA1erKqlSzBMD89hIAANBXOtEeN48FwABAFiGe6lSzBMD89hIAANBXOtEeN48FwABAFiGe6lSzBMD89hIA" lonL="-71.6085152991981" latT="-44.83268277223885" LonR="-71.58413938367076" LatB="-44.84595056374432" color1="-1509949440" color2="872415231" visible="TRUE" picname="" categoryid="1"/>
</ROWDATA></DATAPACKET>

如您所见,有一个名为“ROW”的标记,其中包含“shapes”。我试图为我自己的数据重写它,但实际的点数组是编码的。在网上搜索我发现它是一个Base64编码(Delphi)。我对此一无所知。我读了一点关于它的书,但是非常复杂。我的具体问题是: -我可以用任何语言进行Base64编码吗?还是只能用德尔福? -如果有,有人有python代码吗?在

谢谢你!在


Tags: 数据nameidfielddescrr8subtypei4
1条回答
网友
1楼 · 发布于 2024-05-19 01:40:25

解码base64数据非常简单。在

In [1]: import base64

In [2]: lonlatarr = base64.b64decode("ANBXOtFZZY8FwABITxpq702zBMAgSCcJANBXOlGCU48FwABA1S48rk+zBMAgSCcJANBXOlEvPY8FwACo0VkXqlWzBMAgSCcJANBXOtGRPI8FwADYDRHFYGKzBMAgSCcJ")

In [3]: len(lonlatarr)
Out[3]: 96

In [4]: lonlatarr[0:9]
Out[4]: b'\x00\xd0W:\xd1Ye\x8f\x05'

解释什么是意味着更加困难。在

注意数据的规律性:

^{pr2}$

序列以b'\x00\x0w'开头,以b“\xb3\x04\xc0 H'\t”结尾。 中间的数据各不相同。 可能是这些标志着经度或纬度的开始和结束。 也可能是因为它们的范围和编码,数字的开头和结尾总是一样的。在

幸运的是,这个程序的代码似乎是available。在

您的文件可能与MarksDB有关?很难说。在

联系开发人员也许是个好主意。在

相关问题 更多 >

    热门问题