Label-studio: Can't draw rect to label and output ranges are NaN

Created on 30 Nov 2020  路  6Comments  路  Source: heartexlabs/label-studio

Describe the bug
Cannot label time series. Always get errors in console, rect cannot be drawn

attr.js:17 Error: <rect> attribute width: A negative value is not valid. ("-191.30731102850064")
Error: <g> attribute transform: Expected number, "translate(NaN,0)".

Sometimes I can draw a rect (without seeing it) and the resulting label outputs look like:

{
     "from_name": "label",
     "id": "2rncPqglWD",
     "to_name": "ts",
     "type": "timeserieslabels",
     "value": {
        "end": "0NaN-NaN-NaN NaN:NaN:NaN",
        "instant": false,
        "start": "0NaN-NaN-NaN NaN:NaN:NaN",
        "timeserieslabels": [
          "Off"
         ]
     }
}

Those NaN's look suspicious.
Note: I don't have any NaN's in my data.

To Reproduce
Steps to reproduce the behavior:
See below, I've added my setup and some lines of the file

Environment (please complete the following information):

  • OS: Ubuntu 20.04
  • Label Studio Version Dunno, but just ran the docker container

Additional context
Here is my setup file:

<View>
    <Header value="Inverter Data" style="font-weight: normal"></Header>

    <TimeSeriesLabels name="label" toName="ts">
        <Label value="Off" background="#5b5"></Label>
        <Label value="On" background="#55f"></Label>
    </TimeSeriesLabels>

    <TimeSeries name="ts" timeColumn="time" 
                sep="," value="$new_data" 
                timeFormat="%Y-%m-%d %H:%M:%S">
      <Channel column="val"  />
    </TimeSeries>
</View>

Below the first 110 lines of the data file:

time , new_data
2020-11-30 14:35:00 , {"value": 50.0}
2020-11-30 14:30:00 , {"value": 49.99}
2020-11-30 14:25:00 , {"value": 50.0}
2020-11-30 13:45:00 , {"value": 50.01}
2020-11-30 13:40:00 , {"value": 50.0}
2020-11-30 13:35:00 , {"value": 49.96}
2020-11-30 13:30:00 , {"value": 49.99}
2020-11-30 13:25:00 , {"value": 50.0}
2020-11-30 13:20:00 , {"value": 49.99}
2020-11-30 13:15:00 , {"value": 49.97}
2020-11-30 13:10:00 , {"value": 49.98}
2020-11-30 13:05:00 , {"value": 49.99}
2020-11-30 13:00:00 , {"value": 50.02}
2020-11-30 12:55:00 , {"value": 50.01}
2020-11-30 12:50:00 , {"value": 49.99}
2020-11-30 12:45:00 , {"value": 50.01}
2020-11-30 12:40:00 , {"value": 50.01}
2020-11-30 12:35:00 , {"value": 49.99}
2020-11-30 12:30:00 , {"value": 50.01}
2020-11-30 12:25:00 , {"value": 50.03}
2020-11-30 12:20:00 , {"value": 49.98}
2020-11-30 12:15:00 , {"value": 50.0}
2020-11-30 12:10:00 , {"value": 49.99}
2020-11-30 12:05:00 , {"value": 49.97}
2020-11-30 12:00:00 , {"value": 50.01}
2020-11-30 11:55:00 , {"value": 50.01}
2020-11-30 11:50:00 , {"value": 50.01}
2020-11-30 11:45:00 , {"value": 50.01}
2020-11-30 11:40:00 , {"value": 50.01}
2020-11-30 11:35:00 , {"value": 49.99}
2020-11-30 11:30:00 , {"value": 50.01}
2020-11-30 11:25:00 , {"value": 50.01}
2020-11-30 11:20:00 , {"value": 50.03}
2020-11-30 11:15:00 , {"value": 50.01}
2020-11-30 11:10:00 , {"value": 50.01}
2020-11-30 11:05:00 , {"value": 49.99}
2020-11-30 11:00:00 , {"value": 50.0}
2020-11-30 10:55:00 , {"value": 50.0}
2020-11-30 10:50:00 , {"value": 50.0}
2020-11-30 10:45:00 , {"value": 49.98}
2020-11-30 10:40:00 , {"value": 49.99}
2020-11-30 10:35:00 , {"value": 49.97}
2020-11-30 10:30:00 , {"value": 50.01}
2020-11-30 10:25:00 , {"value": 50.01}
2020-11-30 10:20:00 , {"value": 50.02}
2020-11-30 10:15:00 , {"value": 50.0}
2020-11-30 10:10:00 , {"value": 49.97}
2020-11-30 10:05:00 , {"value": 49.96}
2020-11-30 10:00:00 , {"value": 50.0}
2020-11-30 09:55:00 , {"value": 50.01}
2020-11-30 09:50:00 , {"value": 50.02}
2020-11-30 09:45:00 , {"value": 50.02}
2020-11-30 09:40:00 , {"value": 50.02}
2020-11-30 09:35:00 , {"value": 49.98}
2020-11-30 09:30:00 , {"value": 50.02}
2020-11-30 09:25:00 , {"value": 49.99}
2020-11-30 09:20:00 , {"value": 50.01}
2020-11-30 09:15:00 , {"value": 50.01}
2020-11-30 09:10:00 , {"value": 50.0}
2020-11-30 09:05:00 , {"value": 49.97}
2020-11-30 09:00:00 , {"value": 50.0}
2020-11-30 08:55:00 , {"value": 50.02}
2020-11-30 08:50:00 , {"value": 50.01}
2020-11-30 08:45:00 , {"value": 50.02}
2020-11-30 08:40:00 , {"value": 50.03}
2020-11-30 08:35:00 , {"value": 49.99}
2020-11-30 08:30:00 , {"value": 50.01}
2020-11-30 08:25:00 , {"value": 50.0}
2020-11-30 08:20:00 , {"value": 50.02}
2020-11-30 08:15:00 , {"value": 50.02}
2020-11-30 08:10:00 , {"value": 49.98}
2020-11-30 08:05:00 , {"value": 49.98}
2020-11-30 08:00:00 , {"value": 50.0}
2020-11-30 07:55:00 , {"value": 50.02}
2020-11-30 07:50:00 , {"value": 50.0}
2020-11-30 07:45:00 , {"value": 49.98}
2020-11-30 07:40:00 , {"value": 49.98}
2020-11-30 07:35:00 , {"value": 49.99}
2020-11-30 07:30:00 , {"value": 50.0}
2020-11-30 07:25:00 , {"value": 50.0}
2020-11-30 07:20:00 , {"value": 50.0}
2020-11-30 07:15:00 , {"value": 49.99}
2020-11-30 07:10:00 , {"value": 50.0}
2020-11-30 07:05:00 , {"value": 50.01}
2020-11-30 07:00:00 , {"value": 49.98}
2020-11-30 06:55:00 , {"value": 49.97}
2020-11-30 06:50:00 , {"value": 49.97}
2020-11-30 06:45:00 , {"value": 49.99}
2020-11-30 06:15:00 , {"value": 49.99}
2020-11-30 06:10:00 , {"value": 49.98}
2020-11-30 06:05:00 , {"value": 50.07}
2020-11-30 06:00:00 , {"value": 0.0}
2020-11-30 05:55:00 , {"value": 0.0}
2020-11-30 05:50:00 , {"value": 0.0}
2020-11-30 05:45:00 , {"value": 0.0}
2020-11-30 05:40:00 , {"value": 0.0}
2020-11-30 05:35:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:25:00 , {"value": 0.0}
2020-11-30 06:40:00 , {"value": 49.99}
2020-11-30 06:35:00 , {"value": 49.98}
2020-11-30 06:30:00 , {"value": 50.01}
2020-11-30 06:25:00 , {"value": 50.0}
2020-11-30 06:20:00 , {"value": 49.99}
2020-11-30 06:15:00 , {"value": 49.99}
2020-11-30 06:10:00 , {"value": 49.98}
2020-11-30 06:05:00 , {"value": 50.07}
2020-11-30 06:00:00 , {"value": 0.0}
2020-11-30 05:55:00 , {"value": 0.0}
2020-11-30 05:50:00 , {"value": 0.0}
2020-11-30 05:45:00 , {"value": 0.0}
2020-11-30 05:40:00 , {"value": 0.0}
2020-11-30 05:35:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:25:00 , {"value": 0.0} 
2020-11-30 14:15:00 , {"value": 50.01}
2020-11-30 14:10:00 , {"value": 50.01}
2020-11-30 14:05:00 , {"value": 50.01}
2020-11-30 14:00:00 , {"value": 50.02}
2020-11-30 13:55:00 , {"value": 49.99}
2020-11-30 13:50:00 , {"value": 50.0}
2020-11-30 13:45:00 , {"value": 50.01}
2020-11-30 13:40:00 , {"value": 50.0}
2020-11-30 13:35:00 , {"value": 49.96}
2020-11-30 13:30:00 , {"value": 49.99}
2020-11-30 13:25:00 , {"value": 50.0}
2020-11-30 13:20:00 , {"value": 49.99}
2020-11-30 13:15:00 , {"value": 49.97}
2020-11-30 13:10:00 , {"value": 49.98}
2020-11-30 13:05:00 , {"value": 49.99}
2020-11-30 13:00:00 , {"value": 50.02}
2020-11-30 12:55:00 , {"value": 50.01}
2020-11-30 12:50:00 , {"value": 49.99}
2020-11-30 12:45:00 , {"value": 50.01}
2020-11-30 12:40:00 , {"value": 50.01}
2020-11-30 12:35:00 , {"value": 49.99}
2020-11-30 12:30:00 , {"value": 50.01}
2020-11-30 12:25:00 , {"value": 50.03}
2020-11-30 12:20:00 , {"value": 49.98}
2020-11-30 12:15:00 , {"value": 50.0}
2020-11-30 12:10:00 , {"value": 49.99}
2020-11-30 12:05:00 , {"value": 49.97}
2020-11-30 12:00:00 , {"value": 50.01}
2020-11-30 11:55:00 , {"value": 50.01}
2020-11-30 11:50:00 , {"value": 50.01}
2020-11-30 11:45:00 , {"value": 50.01}
2020-11-30 11:40:00 , {"value": 50.01}
2020-11-30 11:35:00 , {"value": 49.99}
2020-11-30 11:30:00 , {"value": 50.01}
2020-11-30 11:25:00 , {"value": 50.01}
2020-11-30 11:20:00 , {"value": 50.03}
2020-11-30 11:15:00 , {"value": 50.01}
2020-11-30 11:10:00 , {"value": 50.01}
2020-11-30 11:05:00 , {"value": 49.99}
2020-11-30 11:00:00 , {"value": 50.0}
2020-11-30 10:55:00 , {"value": 50.0}
2020-11-30 10:50:00 , {"value": 50.0}
2020-11-30 10:45:00 , {"value": 49.98}
2020-11-30 10:40:00 , {"value": 49.99}
2020-11-30 10:35:00 , {"value": 49.97}
2020-11-30 10:30:00 , {"value": 50.01}
2020-11-30 10:25:00 , {"value": 50.01}
2020-11-30 10:20:00 , {"value": 50.02}
2020-11-30 10:15:00 , {"value": 50.0}
2020-11-30 10:10:00 , {"value": 49.97}
2020-11-30 10:05:00 , {"value": 49.96}
2020-11-30 10:00:00 , {"value": 50.0}
2020-11-30 09:55:00 , {"value": 50.01}
2020-11-30 09:50:00 , {"value": 50.02}
2020-11-30 09:45:00 , {"value": 50.02}
2020-11-30 09:40:00 , {"value": 50.02}
2020-11-30 09:35:00 , {"value": 49.98}
2020-11-30 09:30:00 , {"value": 50.02}
2020-11-30 09:25:00 , {"value": 49.99}
2020-11-30 09:20:00 , {"value": 50.01}
2020-11-30 09:15:00 , {"value": 50.01}
2020-11-30 09:10:00 , {"value": 50.0}
2020-11-30 09:05:00 , {"value": 49.97}
2020-11-30 09:00:00 , {"value": 50.0}
2020-11-30 08:55:00 , {"value": 50.02}
2020-11-30 08:50:00 , {"value": 50.01}
2020-11-30 08:45:00 , {"value": 50.02}
2020-11-30 08:40:00 , {"value": 50.03}
2020-11-30 08:35:00 , {"value": 49.99}
2020-11-30 08:30:00 , {"value": 50.01}
2020-11-30 08:25:00 , {"value": 50.0}
2020-11-30 08:20:00 , {"value": 50.02}
2020-11-30 08:15:00 , {"value": 50.02}
2020-11-30 08:10:00 , {"value": 49.98}
2020-11-30 08:05:00 , {"value": 49.98}
2020-11-30 08:00:00 , {"value": 50.0}
2020-11-30 07:55:00 , {"value": 50.02}
2020-11-30 07:50:00 , {"value": 50.0}
2020-11-30 07:45:00 , {"value": 49.98}
2020-11-30 07:40:00 , {"value": 49.98}
2020-11-30 07:35:00 , {"value": 49.99}
2020-11-30 07:30:00 , {"value": 50.0}
2020-11-30 07:25:00 , {"value": 50.0}
2020-11-30 07:20:00 , {"value": 50.0}
2020-11-30 07:15:00 , {"value": 49.99}
2020-11-30 07:10:00 , {"value": 50.0}
2020-11-30 07:05:00 , {"value": 50.01}
2020-11-30 07:00:00 , {"value": 49.98}
2020-11-30 06:55:00 , {"value": 49.97}
2020-11-30 06:50:00 , {"value": 49.97}
2020-11-30 06:45:00 , {"value": 49.99}
2020-11-30 06:15:00 , {"value": 49.99}
2020-11-30 06:10:00 , {"value": 49.98}
2020-11-30 06:05:00 , {"value": 50.07}
2020-11-30 06:00:00 , {"value": 0.0}
2020-11-30 05:55:00 , {"value": 0.0}
2020-11-30 05:50:00 , {"value": 0.0}
2020-11-30 05:45:00 , {"value": 0.0}
2020-11-30 05:40:00 , {"value": 0.0}
2020-11-30 05:35:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:25:00 , {"value": 0.0}
2020-11-30 06:40:00 , {"value": 49.99}
2020-11-30 06:35:00 , {"value": 49.98}
2020-11-30 06:30:00 , {"value": 50.01}
2020-11-30 06:25:00 , {"value": 50.0}
2020-11-30 06:20:00 , {"value": 49.99}
2020-11-30 06:15:00 , {"value": 49.99}
2020-11-30 06:10:00 , {"value": 49.98}
2020-11-30 06:05:00 , {"value": 50.07}
2020-11-30 06:00:00 , {"value": 0.0}
2020-11-30 05:55:00 , {"value": 0.0}
2020-11-30 05:50:00 , {"value": 0.0}
2020-11-30 05:45:00 , {"value": 0.0}
2020-11-30 05:40:00 , {"value": 0.0}
2020-11-30 05:35:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:25:00 , {"value": 0.0}

I appreciate any help fixing this :)

bug

Most helpful comment

That was one of my thoughts but I was quite busy and couldn't try it until now.

It works fine. Thanks!

Suggestion: add to the docs that this is necessary

All 6 comments

Could you reproduce a project with this bug here (copy your labeling config and upload your task)?
https://app.labelstud.io/api/project-switch?uuid=d06c34c8-f89c-417c-9c2e-3e399e26c5fe

I just did. I change the data I've uploaded to json, as this seems a bit more "logical" than the csv format.

This is the labeling config

<View>
    <Header value="Inverter Data" style="font-weight: normal"></Header>

    <TimeSeriesLabels name="label" toName="ts" timeFormat="%Y-%m-%d %H:%M:%S">
        <Label value="Off" background="#5b5"></Label>
        <Label value="No Data" background="#55f"></Label>
  </TimeSeriesLabels>

    <TimeSeries name="ts" timeColumn="time" 
                sep="," value="$new_data" 
                timeFormat="%Y-%m-%d %H:%M:%S"
                valueType="json">
      <Channel column="val"  />
    </TimeSeries>
</View>

Full json data:
https://gist.github.com/mimre25/ac022c64016750bb338cf69ef33f5fc1

I think the data format is confusing in general. When I import csv, even when I set valueType to json, labelstudio reads it as a list of links.
When I download sample data and upload that, it works fine. Any idea what could be wrong?

@mimre25 Thank you very much, we are working on it.

Any updates on this? Any way I could help?

@mimre25 I've explored your project carefully. I found that time values are sorted in descending order. And I think it's the problem. May you try to order them in ascending?

2020-11-30 05:35:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:25:00 , {"value": 0.0}

=>

2020-11-30 05:25:00 , {"value": 0.0}
2020-11-30 05:30:00 , {"value": 0.0}
2020-11-30 05:35:00 , {"value": 0.0}

That was one of my thoughts but I was quite busy and couldn't try it until now.

It works fine. Thanks!

Suggestion: add to the docs that this is necessary

Was this page helpful?
0 / 5 - 0 ratings

Related issues

azarezade picture azarezade  路  3Comments

lfgogogo picture lfgogogo  路  3Comments

andreaferretti picture andreaferretti  路  5Comments

laynr picture laynr  路  4Comments

kasuteru picture kasuteru  路  3Comments