Spatio Temporal Aquarium
datacursormode problem solved. Finally.
How stupid of me!!!
I have been trying to figure out why I could use datacursormode with everything except my data in my GUI (my data outside of my GUI worked fine). It turns out that somewhere in my screeds of nicely commented code I had helpfully set my data in my GUI to "Unclickable." Apparently I did this to speed things up (thank god I actually commented the code in the first place). This is why nothing happens when I try to click it with the data cursor! I have been struggling with this for weeks! Aaarghhhh!!!!!!
At least I know now...Useful piece of information: datacursormode does not work on things that have "HitTest" set to "off".
Now, maybe I can make some progress...
Data Cursor Again
Aaargh!!! How frustrating.
The data cursor does not seem to work on my grid data. It only works on my vector data.
I can select a vertex on a line, or part of a patch/surface, but I am a little stuck on how to select a voxel. This could be a major stumbling block.
Major hacking ahead.
Since the last meeting I have done the following:
- Converted STVTool to new version of matlab
- Started implementing frizzle (am stuck on getting 3d point information into program)
- Asked TMCM for data
- Started this blog to record progress
- I have had extra work committments, so thesis work time was limited to one weekend.
Over the next couple of weeks I have a relatively light workload at work (ie standard 40 hour week) so I plan to:
Next meeting: 8am 20th July
- Continue Frizzle implementation
- Obtain TMCM's data before he flits off overseas
- Obtain Halifax data from Pip
- Tidy up data input/selection
- Write something
- Investigate TerraSeer
- Investigate NZ ESRI User conference
To Do Over next two weeks:
1. Get Data sets from Otto (he is making me a dvd of a voxel data set)
2. Implement that thing that uses datacursor mode.
3. Tidy up Data set input/scaling.
4. Write something.
Matlab Problem: datacursormode
I need to customize the datacursor, but have no idea how to go about it. I have looked at the datacursormode function
, but there isn't a lot of detail in the documentation.
Basically I want to run another function when the user clicks on a data point with the data cursor.
I'm sure it is possible, I'm just a bit annoyed with myself that how to do this doesn't seem obvious.Technorati Tags: Matlab, cursor, datacursor, customize
GIS Tip: Joining Large Shapefiles
If you are joining a very large shapefile on an attribute field, it is much faster to join the dbfs and calculate new fields in Microsoft Access.
Then just overwrite the dbf part of the shapefile with the new improved dbf.Technorati Tags: GIS, shapefile, join, tips
...although "works" is probably an exaggeration. It is more like: I have gotten rid of the obvious error messages and the prototype seems to be doing what it did before.
I think that is enough brain strain for today.
Matlab Solution: setappdata and structure arrays
Setting up the structure of the array first IS the way to go about it.Does Not Work:
dataset.isosurf.M =;Technorati Tags: matlab, gui, setappdata, appdata, structure, field
dataset.isosurf.O = ;
dataset.isopatch.XZ = ;
Matlab Problem: setappdata and structure arrays
It turns out my old code is not as messy as I thought. There are lots of comments, and it is relatively logically structured. I have decided to just modify the old code.
So, I try and run it. And it crashes on the Initialise routine
For some reason, the code that used to work, no longer works. That's OK. It is what I expected
However, I have spent the last hour trying to figure out why it doesn't work, and I am stuck
. I think it should work. I think the documentation says it should work, but the documentation is not very explicit.
The problem is on the setappdata function:
It doesn't like the fields (ie "isosurf" and "M"). It is quite happy if I just do this:
But I don't want to do just that. I want dataset
to be a structure array like this:
I can't figure out how to define the dataset structure in the setappdata function. Usually, you can just add a field like this:
dataset.isosurf.M = ;
I have tried setting up the fields, and then using that in the setappdata function, eg:
dataset.isosurf.O = 2;
but that doesn't seem to be working either.
I think I need more coffee. I really want chocolate, but I know if I go home, I won't come back.Technorati Tags: matlab, gui, setappdata, appdata, structure, field
I Am Starting Again
Well, not again exactly.
I used to have a tool that allowed interaction visualization of spatio-temporal data sets. It was written in Matlab. I need to update it and add functionality.
I have the option of modifying my old code or recoding. Given that the old code was written for an older version of Matlab, and it was rather messy, I think it will be easier to start again.
Here are screenshots from the old tool:
Today, I am going to figure out the new version of Matlab, and start setting up the User Interface.
Purpose of this Blog
To track my thesis progress.Thesis Title:
Visualizing Spatio-Temporal Data using a Time Geographic Approach.Keywords:
GIS, Visualization, spatio-temporal, time, Time Geography, aquarium, Matlab
My thesis blog.
Matlab. GIS. Visualization. Spatio-temporal. Time Geography. Aquarium.