Ich lese Pakete von RF-Transceiver, wo jedes Paket eindeutige ID hat. Es kann vorkommen, dass einige der Pakete nicht empfangen werden.Python Missing Values Strategie
In Post-Processing-Analyse, ich füge Dummy-Pakete mit Indikator (Spalte PR), die sie nicht empfangen, aber künstlich hinzugefügt, um Paketempfangsrate Diagramm zu ermöglichen. Probe der Datei sieht wie folgt aus:
TS,RxID,RSSI,SNR,PR
.....
.....
252,1,-105,16,1
504,2,-105,17,1
756,3,-105,17,1
1008,4,,,0
1260,5,-105,16,1
1512,6,-106,16,1
1764,7,,,0
2016,8,-105,16,1
....
....
Was soll ich für RSSI und SNR hinzufügen (die in der aktuellen Datei Probe leer sind, wenn PR 0) in der Lage sein, plotten RSSI und SNR-Säule mit Lücken, wo Pakete wurden nicht empfangen. Ich habe versucht, das Einfügen Keine, und leere Zeichenkette, aber immer die gleiche Fehlermeldung erhalten:
could not convert string to float: 'None'
Der Code, der Dummy-Pakete füllt:
inputFile = 'd:\\f1.txt'
outputFile = 'd:\\f2.txt'
timeStamp = 0
timeConstant = 252
packetID = 1
numOfPackets = 20023
with open(outputFile,'w') as g:
while (packetID <= numOfPackets):
noPacket = 1
with open(inputFile, 'r') as f:
for i, line in enumerate(f):
line = line.strip()
line = line.split(',')
currentLine = line
auxLine = line
if (int(currentLine[1]) == packetID):
noPacket = 0
auxLine[0] = str(int(packetID * timeConstant))
auxLine.append('1\n')
auxLine = ','.join(auxLine)
g.write(auxLine)
break
if (noPacket == 1):
auxLine[0] = str(int(packetID * timeConstant))
auxLine[1] = str(packetID)
auxLine[2] = str('') #this is the part where the value for RSSI has to be written
auxLine[3] = str('') #this is the part where the value for SNR has to be written
auxLine.append('0\n')
auxLine = ','.join(auxLine)
g.write(auxLine)
packetID += 1
f.close()
g.close()
Der Code, der RSSI (das gleiche wie für SNR) Grundstücke:
zeigen Sie Ihren Code bitte –
Sie verwenden nicht 'float()', also wo ist dieser Fehler? Fügen Sie den vollständigen Traceback hinzu –
Btw, 'f.close()' wird nicht benötigt. Die Datei ist bereits geschlossen nach 'mit open()' Verwendung –