Skip to content
Back to formatted view

Raw Message

Message-ID: <CA+8X3fU36pdJRPgCK2eJc3aTd0VdFov3skKVwTv=sHWy=7243A@mail.gmail.com>
Date: 2022-07-21T12:09:43Z
From: Jim Lemon
Subject: Extract time and state of charge (Start and End) and Count
In-Reply-To: <CANTvJZKcrNkKLgZa6b1GhQXrC_dVi0Ha=e_UFJgq-x19qt1Ceg@mail.gmail.com>

Hi Roslina,
Yes, the entries in each row refer to the hour of the day and the
state of charge in the columns.

What is at 0-1, 1, 0? Number of cars at hour 1 at state of charge
between 0 and 1? Yes.

For 11-12, 1, 268? Number of cars at hour 1 at state of charge between
11 and 12? Yes.

As I don't have your data set I can't check whether these numbers are
correct, but the pattern looks plausible, with full charges at
nighttime and lower charges during the day when most cars would be in
use.

Jim

On Thu, Jul 21, 2022 at 3:17 PM roslinazairimah zakaria
<roslinaump at gmail.com> wrote:
>
> Hi Jim,
> I have tried your code and am able to understand most of the code and apply it to the whole data set.
> But I am not sure about this part:
>
> colnames(result) <- paste(0:11,1:12,sep="-")
>
> What is at 0-1, 1, 0? Number of cars at hour 1 at state of charge between 0 and 1?
>
> For 11-12, 1, 268? Number of cars at hour 1 at state of charge between 11 and 12?
>
> > print(result)
>
>    0-1 1-2 2-3 3-4 4-5 5-6 6-7 7-8 8-9 9-10 10-11 11-12
>
> 1    0   0   1   0   7   4   2   6  20   19    38   268
>
> 2    1   0   5   4   2   9   4  10  17   24    33   255
>
> 3    0   0   2   1   8   7   7  16  28   31    49   215
>
> 4    0   2   6   3   4   5  15  24  53   38    43   171
>
> 5    2   2  13   6  21  19  28  35  43   44    42   109
>
> 6    0   4  16  16  29  43  36  38  31   55    48    47
>
> 7    0   6  15  23  33  35  56  55  39   47    26    29
>
> 8    3   7  15  19  24  46  58  39  37   32    48    36
>
> 9    1   6  13  14  28  29  31  52  44   39    46    61
>
> 10   3   4   8  12  27  22  33  38  54   66    51    47
>
> 11   4   6   7  12  16  33  37  28  53   52    47    69
>
> 12   2   6  10  16  17  34  32  51  34   51    56    56
>
> 13   0   2  12  12  21  33  30  34  48   48    56    69
>
> 14   1   3  17  10  17  28  37  47  46   54    54    50
>
> 15   2   5  14  26  21  30  47  53  53   35    44    35
>
> 16   3   7  14  24  29  40  39  42  40   50    44    33
>
> 17   0   8  28  24  39  36  41  42  38   41    34    34
>
> 18   4  11  18  26  25  30  53  40  49   39    36    34
>
> 19   4   6  16  19  22  34  47  43  37   48    39    49
>
> 20   5   4  10  17  18  30  25  41  42   57    44    72
>
> 21   1   4   7  14  19  23  33  22  34   37    53   118
>
> 22   0   5   7  19  16  24  24  24  26   36    37   146
>
> 23   2   7   6  11  16  15  19  21  16   29    39   183
>
> 24   0   0   0   0   0   0   0   0   0    0     0     0
>
>
>
> On Wed, Jul 20, 2022 at 8:49 AM Jim Lemon <drjimlemon at gmail.com> wrote:
>>
>> Hi Roslina,
>> I think you have changed the code as "bc_start" in my code is
>> "BCStartTime" in yours. When I run the attached code, I get a data
>> frame "hourly_SoC" that looks right, and a matrix "result" (hour by
>> SoC) that checks against the data frame. I have tried to comment the
>> code so that you an see what I am doing.
>>
>> Jim
>>
>> On Wed, Jul 20, 2022 at 1:18 AM roslinazairimah zakaria
>> <roslinaump at gmail.com> wrote:
>> >
>> > Hi Jim,
>> >
>> > I tried to run your code and got this error.
>> >
>> > > # get the temporal order of observations
>> > > obs_order <- order(c(as.numeric(dt$BCStartTime),as.numeric(dt$BCStopTime)))
>> > Warning messages:
>> > 1: In order(c(as.numeric(dt$BCStartTime), as.numeric(dt$BCStopTime))) :
>> >   NAs introduced by coercion
>> > 2: In order(c(as.numeric(dt$BCStartTime), as.numeric(dt$BCStopTime))) :
>> >   NAs introduced by coercion
>> > > numeric_time<-c(as.numeric(dt$BCStartTime),as.numeric(dt$BCStopTime))[obs_order]
>> > Warning messages:
>> > 1: NAs introduced by coercion
>> > 2: NAs introduced by coercion
>> > > nobs<-diff(range(numeric_time))/3600
>> > > # find the linear approximation of charge state by hours
>> > > hourly_SoC <- approx(numeric_time,
>> > +                    c(dt$Starting_SoC_of_12,dt$Ending_SoC_of_12)[obs_order],n=nobs)
>> > Error in approx(numeric_time, c(dt$Starting_SoC_of_12, dt$Ending_SoC_of_12)[obs_order],  :
>> >   need at least two non-NA values to interpolate
>> >
>
>
>
> --
> Roslinazairimah Zakaria
> Tel: +609-5492370; Fax. No.+609-5492766
> Email: roslinazairimah at ump.edu.my; roslinaump at gmail.com
> Faculty of Industrial Sciences & Technology
> University Malaysia Pahang
> Lebuhraya Tun Razak, 26300 Gambang, Pahang, Malaysia