-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathTODO
executable file
·68 lines (61 loc) · 8.99 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
TODO
IO:
- Add sanity check to read_edi to make sure all the coordinates in the file are the same, and if not, inform user of the one its going to use.
Overall:
- Fix resolution related things, specifically in IO and utils. Model object should contain resolution information, rather than creating separate objects. utils.normalize should work on arbitrary matrix / list, rather than expecting a model object.
- Write reader / writer helper functions that recognize keywords within file names and know what to do with them ('model' for models, 'resp' for responses, etc.). Another helper to automatically detect what you want to write, and make sure it has the right extention.
- Refactor some code (esp. from data_plot) to use GUI_common rather than internal methods / functions.
- Need more meaningful errors for things. For instance, if you read in a output data file (from WSINV) instead of an input file (from j2, e.g.), the Data object will be created fine, but it will cause fatal errors in data_plot.py. It's fine that the data still gets read, but data_plot.py needs to know how to gracefully exit and give a meaningful error.
j2ws3d.py:
- Make interactive period selection more interactive (pickable table for periods)
mesh_designer.py
- Make sure X and Y labels are consistent. In 'Reset mesh' menu, NX, NY do not match with corresponding 'X' and 'Y' cell sizes.
- If a list isn't specified in the pystart file, some error is passing silently: The GUI loads, gives no errors, however axis labels are absent.
- Add option to mesh_designer to change aspect ratio
- Potential bug where the model that you see in the designer is not the same as the one that is written out. Unknown cause, but it seems that the mesh is shifting (at least relative to the site locations) after write out. CAUSE FOUND: Shifting model such that it becomes non-symettric (e.g. by adding pads to one side but not the other) keeps the stations in the same locations in the GUI, but all other model programs (including WSINV) assumes mesh is symmetric, and so site locations get shifted relative to mesh.
- When the model is made non-symmetric (e.g. by adding pads to one side but not the other), the sites remain fixed but grid lines as shown in the GUI will no longer match those made when the model is read in (since when the model is read in, it automatically gets re-centered). This has to be accounted for.
data_plot.py:
- Sorting the dataset and then removing sites breaks the map view (still tries to look for removed site)
- Allow a split screen mode which plots 2 components on top and 2 more on bottom. Would require a bit of work.
- Allow a bounding box to be drawn, removing all sites inside or outside the box. Will require writing methods to remove sites based on locations.
- Allow occam responses to be plotted. Will require overhaul...
- Error thrown in data_plot when taking consequetive periods off of the end
- Dumping plots to file has issues with the number of subplots
- Ability to plot over the map with rho, phase, or model.
- BIG BUG: I think that if you write a datafile after changing the sort order, something messes up with the written data files. Either the site locations are staying the same but the data is being moved, or vice versa, either way, the data is not right.
- Couldn't recreate with ModEM data. Keep an eye for this though.
- Should change the behavior of phase, rho, and bostick plotting to lazy calculation, but so that it retains that knowledge, i.e. calculate when called upon, but store the result so that it doesn't have to be calculated again.
- If you add or remove periods rapidly, an error occurs as the program tries to put in or remove the new period before it's done working with the old one.
- If you remove all the currently plotted sites, the sorting resets to the beginning of the list. Should probably fill in from where it left off.
- Better options for adding / removing periods in bulk. Automatic selection good (i.e. high % availability) periods between selected period range.
- 'Sort Sites' doesn't work as intended when using non-zero azimuth. Map is shown at 0 degrees regardless, but it seems as though the locations used in sorting are considered in the rotated state.
- Bug when loading data at non-zero azimuths. Raw data is auto-rotated to 0, but if azimuth isn't set in data file, it is assumed to be zero, which leads to unfixable differences between raw and used data. I guess not a bug, you just have to make sure the azimuth is set.
- Need to work on the file entry portion of this. Pystarts works for me, but need to make sure other options are available if others are gonna use it. Also, -c flag should accept multiple inputs (right now it just takes the first). CORRECTION, -c flag does take multiple inputs if they are separated by ':', i.e. -c d1:d2:d3. This should be made clear in any readmes, or in the -h
- Refactor some things.
- Should have a class based on QMessageBox that handles accepting output files. This is a common part of pretty much any GUI I'll end up writing, so this is something that should be done once (maybe in a module just for this kinds of commom buttons). See method WriteData for what the functionality. (Right now this is also just copy and pasted into dump_list)
- Should have an option to cache any changes that are made to the dataset. Would be useful to be able to see which sites were removed, which periods removed / added, which error maps changed.
- Plot options (marker colors sizes, shapes), with a config file to set up personal startup preferences.
- Phase wrapping on/off (i.e. wrap YX phase [which is typically negative] back over to positive side)
- Better error map handling. Need to be able to set all the different error map flags, including smart mapping (automatically set error map based on criteria such as, if it's technically a missing data point, don't just set the error map to 9999).
- Option to plot map in rotated or unrotated coordinates.
data_structures.py:
- Phase tensors have been added, but are not supported yet by the other actions that a Site object can do (add / remove periods), not is it set up properly to handle the case where a Site doesn't have all data components, etc.
- Fix RMS calculations. Differences between calculated RMS and reported RMS from the model will occur since error floors are applied differently that, for instance, in WSINV. Basically WSINV is the only code that applies error maps and error floors inside the code itself. ModEM and MARE2DEM just take exactly whatever you supply as the errors. This discrepancy is making dealing with errors in pyMT very difficult.
- The input data format (WS, ModEM, MARE2DEM, OCCAM) should be stored in a Data attribute, and that will become the default output mode if the data is written again
- Going to need to keep making the changes to allow for ModEM and MARE2DEM data handling, specifically Rho and Phase data.
-Rename some things to make it more clear
- calculate_used_errors should probably be apply_error_floor
- Speaking of which, this needs to be modified to handle data other than impedance and tipper
- Need to take out the explicit references to 'ZXY', 'ZYX', etc.
- Going to be a big overhaul to make the data structures work for all inversion types.
- 2-D inversions with tipper might break, since TZXR/I won't be available, and some methods might expect it.
- Error floors should be settable in the data structure, not just in Sites
- Rho, phase, and bostick data should be pre-calculated when the data is read in (i.e. don't have to calculate it manually every time you want to plot it)
- If a dataset is read without a response, but the data is at 0 degrees, things work fine. If azimuth is non-zero, errors are thrown about azimuth not being an attribute.
short term solution is to set azimuth to 0 prior to __read__. This suppresses the error, but some output should be given so that you know what the issue is.
- Add functionality to allow models and data locations to be plotted in latlong, UTM or local coordinates. Data and Models could have a 'coord_system' attribute which tells get_locs which locations to get by default. Model grid lines would have to be converted accordingly (latlong coords would only be available if RawData were available)
bost1D.py:
- Query points are automatically sorted south-north, which might not make sense for west-east profiles. Need to either ask for user input, or automatically look through the points and decide which way to sort them.
utils.py
- check_file should just be given the 'overwrite' flag so that it can handle the whole file checking process internally. Right now it just checks if the file exists, and every file writing method has to call it, then also make sure that outfile isn't blank. One function should handle everything.
- Add calculation of rho and phase errors for determinate, geometric, and arithmetic averages.