Modified:
/trunk/MapDrawer.cpp
/trunk/dataserver.py
=======================================
--- /trunk/MapDrawer.cpp Wed Feb 23 20:35:38 2011
+++ /trunk/MapDrawer.cpp Sat Mar 19 07:40:16 2011
@@ -631,6 +631,8 @@
double pdrange = maxpd - minpd;
int ghist[256];
// TODO: shame on me, rewrite flow control away from goto.
+ int retrylimit = 5;
+ int rangeErrorLimit = 100;
tryagain:
memset(ghist, 0, sizeof(ghist));
for ( int i = 0; i < numPoints; i++ ) {
@@ -643,6 +645,11 @@
//fprintf(stderr, "tpd %g -> grey %d\n", tpd, grey);
if (grey < 0) {
fprintf(stderr, "gpdrp grey %d tpd=%g\n", grey, tpd);
+ rangeErrorLimit--;
+ if (rangeErrorLimit <= 0) {
+ fprintf(stderr, "population shading failed out after too many scale
errors\n");
+ return false;
+ }
grey = 0;
} else if (grey > 255) {
//fprintf(stderr, "gpdrp grey %d tpd=%g\n", grey, tpd);
@@ -659,8 +666,13 @@
//fprintf(stderr, "drop %d points at grey=%d\n", ghist[newHighGrey],
newHighGrey);
newHighGrey--;
if (newHighGrey == 0) {
+ if (retrylimit <= 0) {
+ fprintf(stderr, "population shading failed out after too many rescale
retries\n");
+ return false;
+ }
fprintf(stderr, "too squashed, expand, try again\n");
pdrange *= 1/255.0;
+ retrylimit--;
goto tryagain;
}
assert(newHighGrey >= 0);
=======================================
--- /trunk/dataserver.py Sat Feb 19 21:28:28 2011
+++ /trunk/dataserver.py Sat Mar 19 07:40:16 2011
@@ -75,9 +75,13 @@
def datasetListForDirectory(dirpath):
"""Return HTML string."""
datasets = []
+ dsfiles = []
for name in os.listdir(dirpath):
if name.endswith('_runfiles.tar.gz'):
- datasets.append(datafileLine(name))
+ dsfiles.append(name)
+ dsfiles.sort()
+ for name in dsfiles:
+ datasets.append(datafileLine(name))
return ''.join(datasets)