Work

A little more about my current job, then.
As mentioned, I'm currently working on a programming project in Civil Engineering in UCD. My job is mainly involved with code restructuring, rather than designing most of the algorithms or code myself, as the bulk of the programming has already been done to some extent or another. In its current form, however, the code doesn't do adequately what is required of it and is limited in several areas - this is where the fully trained computer science student steps in and, supposedly, fixes everything.

It's a novel situation for me as I've not worked on many large projects, and in all the large projects I have worked on I've been involved from the ground up and seen the code evolve; I've never been given a lot of code and then briefed on what it currently does, and what it should do instead. In this way, I'm taking this job as valuable experience and I'm happy to be working on a project that has an obvious practical use, as it's a break from the relatively small assignments from college.
I'm finding the work fairly intensive so far, as I'm not used to sitting in front of a computer first thing in the morning and programming through most of the day, and the routine of it took a bit of getting used to. It's also a mixed blessing that much of the code is already written, because it means that a lot of design decisions have been made (for better or worse) and I am carried along by the flow of these decisions. Because of this, it's a bit of a reality-check when I actually have to make a design decision myself, and perhaps takes longer than it normally would due to my brain being concerned with other things.

Still, I've been here for a bit over a month now, and things have been going well in terms of deadlines, so everyone's happy.

I mentioned before that my work was involved in making a traffic simulator - this is an example of what should be happening, and is essentially the base from which I'm working. Traffic inputs will either be simulated, or real data will be provided, and the model will step this traffic along the road, mixing with lane-changes and varying speeds. Once it is verified that the simulation can perform this realistically, much of the task is done and the next part of the project - the bridge loading simulation - will be continued.

Currently, I'm working on implementing a graphical interface to show what is happening each time-step in the underlying simulation. This was a primary concern of my supervisors, as data outputted from the model is very difficult to understand and analyse when only in number-form, and it is almost impossible to verify that the simulation is working properly when dealing only with this data.
To deal with this objective, I have been building on a small graphical interface provided to me, and have been able to get the graphics to represent - accurately enough - the progression of the simulation. It's not exactly Crysis, but it works:


At the moment, the model caters for one or two directional traffic, as well as any number of lanes in each direction - though the model only requires a maximum of four lanes in each direction. I have provisions for generating vehicles other than the cars shown in the picture, but haven't implemented these in the model yet, as I have been focusing on implementing the ability for vehicles to change lanes - a bit trickier than you might think...

0 comments: