Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [sumo-dev] emissions whilst trying to exit from parking

Thanks for the thoughtful discussion,

- Adding  MSMoveReminder::notifyIdle sounds reasonable but l'll have to discuss this with @behrisch who designed the MoveReminder architecture and may have further ideas about it.
- I would call the new method MSVehicle::workOnIdleReminders (I analogy to workOnMoveReminders) because it might be used for other things besides emissions (https://github.com/eclipse/sumo/issues/2233)
- I think it would be ok to let parking vehicles keep their moveReminders and let MeanData handle notifyIdle. This would be consistent with vehicles that stop directly on the road.
- You do not need to wory about performance impact from emission coloring because the overhead of that check is minimial in comparisson to the emission calculation. The simulation runs in it's own thread anyway. However, I would separate the GUI stuff out into a separate pull request
- having NOTIFICATION_PARKING_REROUTE as the last part of the enum does not hurt because it is never a reason for leaveLane. (though it should probably be moved within the enum for consistency)

best regards,
Jakob

Am Di., 25. Feb. 2020 um 22:53 Uhr schrieb The div <div@xxxxxxxx>:
Hi again,
On a first look at the other kind of emission outputs:

trip information -  I tried the following approach and it seems to behave:
  a)    added   MSDevice_Emissions::notifyIdle(SUMOTrafficObject& veh)  + (virtual method in MSMoveReminders)    which calls      myEmissions.addScaled      
  b)    added   MSVehicle::addIdleEmissions()  which iterates over the move reminders invoking notifyIdle
  c)    invoke  MSVehicle::addIdleEmissions()   from  MSVehicleTransfer::checkInsertions   when the insertion fails

Color vehicles by emission:
The current code does not recognise that the vehicle is not on the net - so a parked or stopped vehicle never has zero emissions
 - can be corrected by  changing the rellevant cases in        GUIVehicle::getColorValue    to the equivalent of:
        case 14:
            if ( isOnRoad() || isTryingToEnterNet() )
                return getCO2Emissions();
            else
                return 0.;

     but I might be nervous about a performance impact for large simulations?


Edge/Lane emission aggregations
  I can't see a clean way to do these - the parked vehicle has lost the MSMeanData_Emissions::MSLaneMeanDataValues  MSMoveReminder
    adding this back then handling lane re-entry would be a horrible kludge.

Arguably the Edge/Lane emissions should not have the parking related emissions anyway - it feels like the correct approach would be to add a specific MSMoveReminder for parking emissions - then add it when the vehicle is parked and remove when re-entering the lane?


Any thoughts welcome!

fyi:
Whilst looking at this I noted that the definition of     enum Notification     in  MSMoveReminder.h    has  NOTIFICATION_PARKING_REROUTE  appended to the enum.
 however the enum has a comment, ("All notifications below must result in the vehicle not being on the net..."), that suggests NOTIFICATION_PARKING_REROUTE  is in the wrong place? 

cheers
div
-------- Original Message --------
On 23 Feb 2020, 21:14, Jakob Erdmann < namdre.sumo@xxxxxxxxx> wrote:

The approach sounds reasonable. However, it won't cover all kinds of emission outputs:

cheers,
Jakob


_______________________________________________
sumo-dev mailing list
sumo-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/sumo-dev

Back to the top