« first day (285 days earlier)      last day (2116 days later) » 

12:56 AM
 
 
13 hours later…
1:33 PM
crap I'm thinking about adding something so users can 'zoom' in on parts of the data
but I don't want a humongous toolbar at the top of each figure
 
 
1 hour later…
2:48 PM
@DMA57361 this is the average contact without any trimming, looks pretty good tbh
so now I'm going to try and display the center of pressure on top of it
 
nice, the smoothing/interpolation on those paws make them look very good
 
actually I haven't done anything on these I believe
but it does look smooth
 
you sure? maybe it's the colour map then
either way, they're looking good
 
oh it is, how odd :\
it says the contact is 40 x 40
the human foot version is even 120 x 70
d'oh! I'm interpolating on the 'views'
that's why
well at least I'm only padding it with zeros to average it
which means the COP should align pretty well
 
that makes sense
 
3:03 PM
but I found that Joe's interpolation method also translates the contacts
perhaps I should ask about that on SO
anyway, I've been cleaning house in the results
the idea is that I now have 4 panels
1 with the contacts, where you can lay the axis, zones and cop
1 with graphs, where you can switch between Pressure/Force/Surface
1 with the temporal and spatial info
1 I'm going to fill with some basic stats
btw I sent a linkedin message to a phd-er who just finished his phd, who studies horses and dogs with the same system
probably going to try and visit him next week
so who knows what might come from it :)
 
oh nice, more leads are always a good thing
 
yeah and the analysis they were doing is sooo simplistic
they calculated the asymmetry between left and right
for the peak pressure, peak force and some other values
just 1 freaking value
and it turns out to be a near perfect predictor of lameness
if that's true, the surely with the results I generate I should be able to either predict more than just lameness or predict it much earlier
and obviously I hope clinics would be interested in using it for that purpose
like a gatekeeper, just let any animal that comes in first walk over the plate, then we'll talk further :P
 
lol
 
well the idea would be that a secretary can do the measurements, then the doctor can look at the results while his doing his take-in
instead of guessing, he would have much more objective information and be more focused on the areas that are likely to actually have a problem
 
makes sense, and would speed things I imagine
 
4:08 PM
I should have thought about this earlier!
 
 
4 hours later…
8:35 PM
I first had calculated the zones on the original data, but then there's some translating (still :@)
the problem with this would be that while these toe locations are spot on, they don't really translate to the original data (at least not 1 on 1)
 
8:58 PM
@IvoFlipse doesn't that really matter too much? and is it me or are there toes that haven't been marked in that image?
 
I compare every peak to which is the closest to my 'default toes', if the paw is rotated at a certain angle one toe is the closest to 2 default toes, so basically it overwrites the previous toe it was connected to
but I wrote that code in january or something, so I'm going to give it another shot, surely I should be able to do it one up
technically you're right as long as I can find the right toes, it doesn't matter if its interpolated or not (to a degree)
 
@IvoFlipse I guess as long as you don't use the interpolated locations in any calculations the visual location isn't as vital
 
I'm now try to tag on the center of pressure
which strangely enough is upside down :\
I have no idea how to flip it around without flipping around the rest as well :\
 
how's it being added to the rest? presumably you've got to flip it before then
@IvoFlipse "paws"? ;) and it does a nice job rendering feet too, I see :)
 
@DMA57361 I flipped the average contact before sending it to the zone calculating, so that one is covered
yeah, though I'm considering adding a step at 1% as a difference between black and blue, because this image should have some REALLY low pressure in the middle
and its still a tad too blue
but that's because they used to use a logarithmic scale, them cheaters :P
 
9:05 PM
lol
 
this is what it looks like in the original software
so that path is pretty much correct
but upside down
 
yeah
 
which I thought meant, just display it backwards
but it doesn't seem to make a difference
which probably means I'm not really turning it around :P
 
9:26 PM
strangely enough, I tried flipping it in every direction
self.axes.plot(copx[::-1], copy, color='w', linewidth=3)
        self.axes.plot(copx, copy[::-1], color='r', linewidth=3)
        self.axes.plot(copx[::-1], copy[::-1], color='b', linewidth=3)
        self.axes.plot(copx, copy, color='g', linewidth=3)
yet only these two are displayed
and that's because the blue and white ones give exactly the same result, which makes sense :\
turning around x and y means its projected sideways
 
@IvoFlipse so the green and red lines in this image are meant to be reflections of one another? but they don't have the same shape
 
well I guess if they are direct opposites of each other they are indeed the same
but I just don't get WHY on earth I can't flip it over...
 
have you examined the contents of copx and copy for any abnormalities?
 
[ 27.18 25.99895806 25.49275103 25.10337962 24.60003155
24.16227309 24.02869261 24.1056284 24.31926957 24.69225599
25.22815432 25.84745174 26.49427813 27.13406004 27.69877527
28.1248567 28.559772 28.98424173 29.36837908 29.74601267
30.10392086 30.5022812 30.90429792 31.27817115 31.68755597
32.17207495 32.6402097 33.06565381 33.46964794 33.85773938
34.32696542 34.82708222 35.34663548 35.92 36.48951162
37.04386196 37.59465864 38.14534405 38.66371637 39.0891375
130 is at the bottom (because the contacts are upside down technically speaking)
I'm not sure its really possible by just flipping them around :\
basically I need the inverted image, transposed so it starts at the right position
pfff. I wonder where this all started that everythings upside down
I'm very tempted to rewrite this in the future, to make sure the data goes into the database in such a way that its orientation is aligned to how its going to be displayed
or I need a way to convert measurements to some global coordinate system, so I don't have to juggle around with flipping things over all the time :\
 
9:44 PM
hmmm, yeah, that'd be the "future proof" solution I guess
 
9:54 PM
@DMA57361 lol well that's what I need
only without the foot being flipped as well ;P
 
lol
sort of half way there
 
this is what I get by inverting one of the arrays
something's fishy
this is pretty correct, but the problem is that I had to flip my contact to get this result
which makes you wonder, WHY CAN'T I DO THIS WITH JUST THE WHITE LINE FFS
 
indeed, most strange
 
because the data is stored in the database, I can't go back to my calculations and just invert the input either
that's the downside :\
 
well, I'm going to do that sleep thing I keep hearing good things about... I'll leave you to it
 
10:08 PM
what's that ;P
I'll keep trying ;)
see you later
 
10:53 PM
 
11:08 PM
hey @IvoFlipse how ya doin?
 
getting nuts
I just can't get these axes right
 
o.O getting nuts or going nuts?
goes to read transcript to get caught up
 
don't bother
just look at the pictures ;P
 
lol...
so having issues with the data being upside down, but the images right side up?
That's very odd...
 
well as you can see in the above image
I found that I can have 2 axes
and make them share the x axes (so far so good)
and I just wanted to invert the y_axis
but well... that's where it goes wrong
even if I define the axis y limits from 0-140 and 140-0
it draws an axis from 100 - 25
 
11:15 PM
why do you need the axis inverted?
 
because the y coordinates are correct, but generated on the image being upside down
I didn't know that when I calculated (and stored it)
 
Ah...
no way to easily inverted the results?
 
apparently not, or I just couldn't think of one...
 
well it's all stored in a database right?
and the images are stored as pixels
which are stored in matrices
and there's probably 3 or 4 judging by the fact that there is color
so can't you just create a quick program that will read the database, and invert the matrices?
 
yes, but to redo all the calculations I need to do: add function to calculate correct value, update the values in the database, create a function that triggers this post-processing and make sure it works for all the other results
 
11:20 PM
meaning that if the matrix is 25x25 that the value in 1-1 becomes the value of 25-25
@IvoFlipse Ew....
 
ah well, guess I need to ask an SO question
 
He he.. well your rep there is getting better as you com across these questions
well on my project I realize that I need to create a unique id for patientid
 
@KronoS they are unique
 
something like [observerini][date][num]?
 
but elaborate
you already have that
you see, rather than trying to create an unparseable index
 
11:27 PM
Ah yes they are... until we have a two machines taking data at once, and then we 'merge' the databases.. there will be dupes
 
unique = id, observerid, date
no there won't, because one observer can only perform one observation at a time
yes the id's will be the same, but it doesn't have to be unique
 
Oh! That's what that means... I thought that by stating unique = id, observerid, date meant that ID and/or observerid and/or date had to be unique INDIVIDUALLY
not the combination of the three
 
technically speaking you wouldn't import the id, just the observerid + date
nope :)
when you insert it in the main db
they get a new id, based on that db's autoincrement key
perhaps you should just make observerid + date unique
because the id won't migrate along
 
@IvoFlipse speaking of which i was thinking that I might consider using mySQL for the main db and continue to use sqllite for the app...
 
@TomWijsman any idea why my axes are screwed?
 
11:30 PM
@IvoFlipse that makes sense
 
Is the white line right? What's that line supposed to mean?
As for the axes, you should get them to have the same offset and scale sot hey match up, and then reverse if needed and hide them from the sides (if you know how).
 
well the white line in the previous image is upside down
so I added another axes to the figure and low and behold, its plotted in the right direction
but as you can see from the y axis, they aren't the same
#self.axes.set_ylim(self.ylmin, self.ylmax)
self.axes2.set_ylim(self.ylmax, self.ylmin)
even though I'm clearly setting the limits
 
Doesn't it have to be set_ylim(self.ylmin, self.ylmax) instead?
And well, debugging without context is hard so I'm probably saying non-sense...
 
@TomWijsman yes, that would be if I wanted the axis to be the same
but I want it upside down (as it is)
if I set the limits from min to max ( which were derived from the foot's plot ), I can try inverting the axis, but it won't work
 
11:43 PM
Can't you plot the self.ylmax - y?
 
perhaps you have suggestions for how to invert the white line instead
@TomWijsman -x ?
 
erm, y is better.
Instead of drawing the function as is, substract the function from the top.
So it draws from the top down instead of the bottom up
and your axes remain unchanged.
Attempt in Photoshop.
Is it the center of gravity over the Y-as?
 
@TomWijsman the issue is that I inverted the foot AFTER calculating the center of gravity
I see, I subtracted it from copy[-1], but that's not the right value
it should be the y coordinate of the foot's image
I guess that's as good as its going to get
any other differences are due to translations due to interpolating the original signal
and I still have some work to do on tweaking my color map
for some strange reason though, if I add an axes to the figure, rather than a subplot, it doesn't plot that line on all of the prints :\
 

« first day (285 days earlier)      last day (2116 days later) »