TNTmips

HOME

PROFESSIONAL
  TNTmips
  TNTedit
  TNTview
  TNTserver
  TNTmap
  TNTsdk
  Prices
  How To Order

FREE PRODUCTS
  TNTlite
  TNTatlas
  TNTsim3D

X SERVER
  MI/X

  FAQ

DOCUMENTATION
  Tutorials
  Technical Guides
  Quick Guides
  New Features
  FAQs by Jack(tm)

ADVANCED TECHNIQUES

SCRIPTING

SITE MAP

this document in PDF

TNT Products V7.0

November 2004

Table of Contents

Introduction 

Editorial and Associated News [by Dr. Lee D. Miller, President] 

Official Releases
How Do TNT Innovations Occur? 
Bigger, Bigger, and Bigger Projects
New Feature Priorities

Hardware News 

Geologic Mapping Station
Starting TNT products from a Portable Drive
Serial ATA drives

Software News 

Further Confusion over Wavelet Compression
LizardTech MrSID Compression to Be Supported in DV7.1

Reference Geodata 

Orthorectifying OrbView-3 Images
Landsat Global 15-Meter Color
SRTM 90-Meter
Nebraska 1-Meter

Floating TNT Licenses 

Using a Floating License as a Fixed License
Updated Tutorial

Windows 95 

Mac OS X 

Version Tracker
Mac OS X 10.3.X (Panther)
Mac OS X with Windows Remote Desktop
Mac OS X 10.4 (Tiger)
Ensuring the Correct TNT Versions

TNTsdk™ 

TNTsim3D™ for Windows 

Building Massive Geospatial Simulations
Panoramic Backgrounds
Geospatial Scripting (SML)
Custom View Window
Miscellaneous
DV7.1 – Some Ideas for Additions

TNTatlas 7.0 for X 

Atlas Discussion Group
Introduction
Lincoln Sample Atlas
Afghanistan Sample Atlas
Miscellaneous

TNTserver/clients 7.0 

DV7.1 – Supporting OpenGIS’s Web Map Service (WMS)

TNTview® 7.0 

Price Reduced and Functionality Expanded
Inherited New Features
Upgrading TNTview

TNTedit™ 7.0 

Inherited New Features
Upgrading TNTedit

Tutorial and Reference Booklets 

New Booklets Available
Revised Tutorials with Major Changes
Quick Guides

New TNTmips Features 

System Level Changes
New Coordinate Reference System (CRS)
Shape Objects
2D Display
* 3D Display
* Manifolds. 
Cartoscripts
Georeferencing
Raster Resampling Using Georeference
Raster Mosaic
Predefined Raster Combinations
Raster to Vector Boundary
Import/Export
Font Management
Map Calculator
* Advanced Geometric Object Conversion
* Merging Objects. 
* Vector and CAD Extraction
CAD Object Warping
Spatial Data Editor
Database Features
Text Editor
Style Editor
Geospatial Scripting Language (SML)
Upgrading TNTmips

Internationalization and Localization 

Localization Editor

MicroImages Authorized Resellers 

AUSTRALIA
BOLIVIA
INDIA
SOUTH AFRICA
CHINA

Discontinued Resellers 

Canada
China
Egypt
Germany
Ghana
Guatemala
Mexico
Netherlands
Pakistan
Poland
Russia
Serbia and Montenegro
Spain. 
Switzerland
USA, Florida
USA, Colorado 
United Arab Emirates

Appendix: Abbreviations 

Attached Color Plates

Property Viewer Atlas for Lincoln, NE (2-sided)
Exploring District Services (2-sided)
Using Overlapping Polygons (2-sided)
Managing Display of Large Vectors
JPEG2000 Compression in TNTsim3D
Sky Domes in TNTsim3D
Sky Domes Provided with TNTsim3D
Adding Sky Domes to Landscapes
Startup Scripts in TNTsim3D (2-sided)
TNTsim3D Custom View
Snapshots from TNTsim3D (1/2 page)
Subterrain Color in TNTsim3D (1/2 page)
Property Finder Tool Script (2-sided)
Add Styling to DataTips (2-sided)
JPEG2000 Compression in Atlases
Greater Control Over TNTatlas/X Startup (2-sided)
Afghanistan Atlases on CD (2-sided)
GraphTips in the Afghanistan Atlas (2-sided)
New Tutorials
Quick Guides Available from Menu
Directly Use PNG Files
Spatial Referencing in TNT (2-sided)
Coordinate Reference System Window
Predefined Coordinate Reference Systems
Predefined Coordinate Reference Systems Requiring Datum Selection
Custom Coordinate Reference System Setup
Graph Values from Multiple Rasters by Cell Location
Direct Display of Shapefiles/Legends/Styles
Enhanced Sketch Annotation
Setting DataTip Background Color
Use a DataTip, GraphTip, or Tool?
Local Time Zones (2-sided)
Pie Chart and Bar Graph (2-sided)
Enhanced DataTips and GraphTips (2-sided)
Profile of Nearest Line (2-sided)
Spyglass View (2-sided)
Pop-In View (2-sided)
3D Surface Rendering Modes
Transparency and Relief Shading in 3D Views
Pedestal and Fence in 3D Views
Stereo Viewing Modes
Anaglyph Stereo Viewing
Inexpensive Stereoscope Viewing
Stereoscope Viewing
Manifolds in 3D Views (2-sided)
Visualize 3D Geology Using Manifolds (2-sided)
3D Subsurface Model Using Manifolds
Create Cross-Section Manifold Objects
Edit Manifold Objects
Georeferencing Manifold Surfaces
Editing Manifold Surface Triangulation
Mosaic Directly into JPEG2000
Font Substitution in the TNT Products
Geometric Object Conversion
Copy/Paste between Geometric Objects (1/2 page)
Session Log Files (1/2 page + back)
Step through Elements with Tab Key
Database Table Creation Wizard (2-sided)
Database Wizard and Virtual Tables (2-sided)
Render Complex Layouts to SVG (2-sided)
Create Crystal Reports with SML (2-sided)
Terrain Curvature (2-sided)
Mosquito Habitat Statistics (U-Test) (2-sided)
Infrastructure Graphical Profile (2-sided)

Introduction 

MicroImages in its 19th year in business is pleased to distribute RV7.0 of the TNT products.  This is the 55th release of TNTmips and adds approximately 280 new features submitted by clients and MicroImages.  Because of the length of this MEMO, the color plates are stapled separately to make reading the MEMO and viewing the color plates more manageable.  Registered and successfully completed downloads of TNTlite are 26% higher in 2004 relative to 2003 and double the number in 2002.  MicroImages appreciates your support and assistance in promoting more awareness of the TNT products around the world.  In exchange we continue to concentrate our focus and resources on product development and support.

What follows is a brief summary of many of the significant new capabilities in RV7.0.

  • TNTsdk: The software development kit used to build every TNT product has been 20 years in the making and represents about 100 man years of effort.  Changing from Motif graphical libraries to royalty free LessTif graphical libraries has permitted the optional charge for TNTsdk to be dropped.  Now your RV7.0 CD and weekly patches permit you to install and maintain TNTsdk and use it to build programs to add to your TNT products’ menus including to TNTlite

  • TNTatlas: A DVD entitled Property Viewer Lincoln, NE is included with RV7.0 of your TNT products.  This sample atlas demonstrates how a large collection of geospatial data (~50 gigabytes) can be assembled into a form for easy general public use.  Navigation by an owner or address query is implemented in a TNT Tool Script.  Complex information about each property is presented in the form of an enhanced DataTip.  A CD entitled TNTatlas of Afghanistan is also included to demonstrate several completely new concepts that can be added to your atlases.  It demonstrates the dynamic pop-in of spatially aware graphical information using the new GraphTip and Display Control Script features.

  • TNTsim3D: Large JPEG2000 texture layers can be used without any performance degradation.  For example, a 50 GB image could be compressed 12 to 1 and distributed on DVD as part of a landscape.  Cloudy skies and other panoramic dome backgrounds are provided and add realism to all simulated views.  TNT scripts (SML) can be used to add dynamic custom features.  New SML functions let you exit these scripts by using the flight controls (which means keyboard, mouse, or joystick), rather than having to de-select the script from a menu.  Startup scripts now permit simulations to automatically start up in specified positions, following programmed paths, and so on.  A Custom View can be started with an observer position related to and locked to the simulated changes in the Main View.  The contents of this Custom View can be the same, selected, or entirely different components of the landscape.

  • TNTserver/clients: TNTserver can now serve up results as JP2 (JPEG2000 compressed) and PNG (compressed) in addition to JPEG rasters.  Graphical layers can be served up as Scalable Vector Graphics with a database table and embedded/linked rasters.  The latest TNTclients have been modified to use these new data structures. 

  • TNTview: The price of TNTview has been lowered from US$1000 (NAFTA) or US$1200 (international) to a uniform US$500 fixed license and US$600 for each floating seat for all supported platforms.  See the sections below entitled 2D Display, 3D Display, and others for all the RV7.0 features automatically inherited by TNTview.

  • 2D Display: Labels created as part of a CAD sketch layer can now have frames and leader lines.  DataTips can be enhanced in appearance by using all the TNT text codes in their formation including picking the background color inside their frames.  GraphTips and Display Control Scripts are now available.

  • Shapefile Layers: Shapefiles can now be quickly auto linked and displayed as layers in a composite 2D and 3D view with styles and symbolism.  Styled entries for shapefile elements now show in the LegendView.  TNT special visualization features can be used, such as DataTips, selection procedures, and so on.

  • JPEG Layers: An auto link to JPEG compressed rasters permits them to be selected for use as layers in 2D and 3D views.  Companion world files (*.jgw) provide their georeference.    

  • PNG Layers: An auto link to PNG compressed or uncompressed rasters permit them to be selected for use as layers in 2D and 3D views.  Display processes will use companion world files (*.pgw) for georeference if found.  An opacity mask layer, ICM color profile, and other features are stored in the link file and used.

  • 3D Display: All older rendering modes have been removed and only the three current methods are provided.  Relief shading can be optionally computed from the DEM and viewed.  A layer can use the transparency setting for the layer or for each individual polygon for all rendering methods.  Complex pedestals can be created downward or upward for a fence effect.  Pedestals can be curved and have smoothed shaped color effects.  Manifolds can be viewed with or without 3D surface views.

  • Manifold Surfaces: Raster, vector, CAD, and linked objects can now be georeferenced in 3D to orient and shape them into planar, curved, or folded manifold surfaces representing cross sections, profiles, objects, and related shapes.  These 3D control points are used to compute a TIN surface in a 3D view onto which the object is projected as a texture.  The TIN can be interactively edited as well as the texture.     

  • Stereo Display: A 3D view (texture plus DEM) can be switched into a stereo mode that matches the available viewing device, such as a mirror stereoscope or 3D monitor.  Modes include side-by-side, line interlaced, column interlaced, and anaglyph.

  • Display Control Script: This is a TNT script that is stored with a group or layout and will auto run when either is opened in the Display process.  When the cursor pauses in the view, just as with a DataTip, they can access its geocoordinates, the nearest element (point, line, or polygon), and/or a raster cell’s content. The rest of the script can use this result for anything that can be done in a script. 

  • GraphTips: Simple DataTips no longer need to pop-in as spatially aware information just in the form of styled text.  Now data read for the cursor position using a Display Control Script from attributes or computed from them can be presented in graphic forms—hence, GraphTips.  For example, GraphTips can draw working clocks or combine attributes into a pop-in pie diagram or histogram.

  • Dynamic Spatial Analysis: The geoposition/element(s) at the paused position of a cursor can be used in a Display Control Script for a complex geospatial analysis for every position of the cursor.  The inputs to the analysis can be any layers in the view or in objects of any TNT geodata type.  The script can then project these results into their corresponding locations in the current view (for example, as multiple GraphTips) or open and present them in a new view.  Move the cursor, and it changes the analysis and results.

  • Editing Spatial Data: Features in a geometric object (vector, CAD, shape, and TIN) selected by any TNT selection method (region, attributes, cursor, …) can be copied and pasted into any other type of geometric object or simply cut.  Manifold surfaces can be edited.

  • Validation. Validation of polygonal or full vector topology is faster and more robust.

  • Coordinate Reference System: The industry standard ISO 19111 Coordinate Reference System (CRS) definitions and the corresponding EPSG geodetic parameters, equations, and datum transformations are now supported using a new Spatial Reference (SR) service, which supplies them to all TNT products.  Thousands of new CRS are available.  Datum to datum transformations are used for more accuracy.  Defined units of measure are used to avoid conversion to/from meters to increase accuracy and speed.  

  • Mosaicking: Mosaics can now use linked MrSID, JPEG, JP2, or PNG files or JPEG2000 compressed raster objects as input.  The resulting mosaic can be a lossy or lossless JPEG2000 raster object.  A null mask subobject is created to specify cells of null, or no, data. 

  • Geometric Object Conversions: A mixture of several geometric objects (vector, CAD, shape, region, and TIN) can be selected as input in the Extract or Merge processes.  The specific output type is determined by your menu selection. 

  • Render to SVG: Rendering into a Scalable Vector Graphics layout is now faster.  It uses a new improved control window with tabbed panels.  New features include a JavaScript to reproduce any DataTips that were defined in the source object(s), zoom up labels 2x when they are under the cursor, and others.

  • Geospatial Scripting Language: 20 SML scripts designed to demonstrate new visualization and analysis capabilities are illustrated and dissected in the accompanying color plates.  These include Display Control Scripts used for Enhanced DataTips and GraphTips, TNTsim3D startup scripts, a sample Dynamic Spatial Analysis script, and a TNTatlas startup script to create a user input form for a complex query.

  • Tutorials: Two new tutorials are provided on the topics of managing massive geodata layers and setting up the TNTsdk.  14 new Quick Guides are included and all Quick Guides can now be installed and are indexed and accessible directly from within your TNT products.  62 new color plates accompany this MEMO to illustrate the use of the new features in RV7.0.  Four other tutorials have been expanded in scope to cover new features and updated and 2 more have been updated.  

Editorial and Associated News  [by Dr. Lee D. Miller, President] 

Official Releases.

Introduction.

For 20 years your requirements and our interest in addressing new opportunities for geospatial analysis have continued to make TNTmips and the other TNT products advanced and flexible.  In responding to this continual demand and opportunity for new and more efficient features, the TNT products are by necessity continually evolving.  As a result, you have to make the choice between reliability and your need for new features, ease of use, speed, and so on.  MicroImages has an effective weekly patching system in place that provides upgrades for several official versions of our TNT products to support the evolutionary nature of our product development.  Patching is easy and can be done each week.

Cycling Releases.

As we approach the end of a development cycle of the next version of the TNT products (for example, DV7.0), we formally announce its new features. This came to you in synopsis form in a MicroImages MEMO entitled V7.0 New Features.  From our viewpoint, this is about the time that the initial coding of most of the new features for the next version is complete and their improvement is underway.  This New Features MEMO is issued to you as early in our development cycle as possible to permit you to decide if you want to order that version and/or begin to experiment with it. 

Soon after the New Features MEMO reaches you, we begin to get inquiries about when we will officially release that version.  The official release of a new version of the TNT products is made on a specific date via microimages.com. On that day the official release version of your TNT product is posted for downloading (for example, TNTmips RV7.0 on 17 November 2004 ).  During the weeks prior to this official electronic release, MicroImages’ staff is searching for and correcting errors and making minor adjustments to tune the features in the release.  This effort is guided by your and our observations from using each successive weekly prerelease as DV7.0.  During this last period before the official release, our activities are not focused upon adding new major features, but some may appear that were not documented in the early New Features MEMO. 

Electronic Release of Versions.

On the day of the official release we are merely changing the name and status from a development version (DV7.0) to the official release version (RV7.0).  As a result, the official release differs from the last or weekly posting of the development version by one week.  The first patch file posted the next week (PV7.0) will differ from the official release version by 1 week, then 2 weeks, and so on as will the full release version posted for download.  One significant thing that happens on this official release date is that development of new features ceases.  Correspondingly, on that date a new development version is created internally at MicroImages (for example, DV7.1 on 17 November 2004 ).  Within a few weeks, when some new features are working in this new development version, it is made available for downloading and new descriptive material about it begins to appear at microimages.com. 

Making Your Update Decision.

You can enter this weekly cycle at any time you choose that is permitted by your subscription status by downloading an RV, PV, and/or DV that each may differ from their previous release in weekly increments. If you are maintaining dual versions (for example, the latest PV7.0 and DV7.1), you may be updating them frequently.  You probably became aware of some interesting new feature via a new color plate(s), our daily news, or eventually via the new feature summary MEMO.  You may decide to set up and start using DV7.1 because you need access to, or at least want to experiment with, some new feature available in the DV.  You then often lobby us with suggestions for improvements in these new features while such changes are easy to make.  You also report errors so that you can get these new features into working shape for your immediate application via the DV.  In the weeks just before the official release, adding significant changes and features decreases significantly and tuning and error correction are the focus of our activity in that version. As of the date of the official release, no new features are added to that version, a new development version is created for that purpose, and the patches to the official release are focused only upon correcting the inevitable additional errors you locate when running your specific production projects. 

From all of the above you can conclude that the concept of an “Official Release” of the TNT products is somewhat arbitrary and subjective as our product evolution simply progresses from week to week.  The point at which you as a client, institution, or reseller install the newest versions of the TNT products is, thus, arbitrary.  The earlier in a development cycle that you install and work with the development version, the faster you will gain access to its new features and the more likely you will be motivated to, and become interested in, participating in the perfection of that version as well and in influencing its final features and form.

Physical Release of Materials.

When the effort of bringing a DV to the point of officially releasing it as an RV is complete, the physical materials for it can be completed, such as writing this MEMO, printing hundreds of thousands of color plates, reproducing color booklets and Quick Guides, duplicating many thousands of CDs and DVDs, and packing and shipping.  This takes time.  Many popular commercial product upgrades first become available as a download with rather useless help file updates and later via a single CD providing the same lack of information but packaged in a big, fancy, and otherwise empty box.  This may work for your products that are feature stable, such as a word processor or spreadsheet, if you have good Internet access (not a modem), access to commercial retail outlets, and are willing to buy expensive books months later to consult regarding the possible new operations provided in the upgrade.  It is not workable approach for a complex, rapidly evolving, and more expensive professional product, such as TNTmips.

Independent User’s Flexibility. 

As a typical professional TNTmips user, you are probably using a Windows- or Mac- based computer with dual displays, 1 GB of memory, hundreds of gigabytes of drive space, and DSL or cable Internet access.  While TNTmips is a very large set of programs on a relative basis, each copy of it now has a relatively small footprint on your large hard drives.  Your high speed network access enables you to effortlessly grab our large weekly releases while at lunch and maintain several of them on your hard drive.  MicroImages also insures that, if you have multiple versions of your TNT product installed on the same computer, they can be operated totally independently.

Dependent User’s Production Approach.

The TNT product upgrades are widely distributed internationally and must reach users with a wide variety of highly varied distribution channels and Internet bandwidth.  Those of you with fast Internet connectivity can have your RV within days of its postings.  You do not need the CD containing it.  In fact, it is likely that something on that CD has already been patched by the weekly patches before the CD reaches you, and you have already downloaded your release and patches to it.  Those who are in remote locations who can not at least borrow a fast Internet connection have to wait for the CD to arrive and probably stay with using that version and its potential problems.  Those of you using floating licenses with software installation, maintenance, and version testing controlled by system managers have to live with their decisions with regard to when they upgrade you.  You are again experiencing the same circumstances that originally led to the personal computer rebellion and now to the monopoly of various software products.  In this case, try to persuade them to let you have access to 2 TNT versions: “the tried and true and something new.”  MicroImages’ various official release and patching procedures are designed to support this widely diverse clientele (for example, fast versus slow web access) and international customs (for example, locations with an absolute aversion to prepaying for or even maintaining software).

How Do TNT Innovations Occur?

Innovations in application software are not born out of nothing.  Software evolves based on multiple factors, some controllable (for example, existing features and the introduction of new libraries) and some uncontrolled (for example, new operating systems versions and hardware and increased computational power).  Innovations in the TNT products come about within these circumstances in a process that might be thought of as guided chaos.  Thus, when we release new features with long range objectives, their utility may not be clear to you and may not even be totally clear to us.  

Examples of earlier TNT innovations of this type might be the transparent use of geodata objects without regard to their projection or coordinate reference systems, keeping all information for a geodata layer together in a single object, managing geodata of differing structures in a single file, adding the concept of scale to objects and views, TNT scripting, and so on.  The utility of these features introduced over time may not have been immediately apparent, but they now provide the building blocks of your current TNT products’ advanced capabilities.  

Enhanced DataTips, GraphTips, Display Control Scripts, and Dynamic Geospatial Analysis introduced in RV7.0 provide an interesting example of how slowly perfected software building blocks can be assembled and reassembled into innovative new TNT features.  The history of how these features evolved from the simple DataTip idea may be of interest and provide insight into how these new features work and can be applied. As you read this account, you might wish to jump ahead and examine accompanying color plates in the category entitled Sample GraphTip Scripts to help you visualize the kinds of results they can provide.  These color plates are also referenced and discussed in specific detail in the corresponding technical sections of this MEMO.

Can we spatially interact with a view?  DataTips are born.

Years ago in the 20-year evolution of the TNT products, we happened to see the idea of a pop-in feature identification label in some other small software product.  At the time, this was the basis for the addition of the DataTips concept into the TNT products.  Our implementation took this example idea further by permitting you to designate which attribute to present as the DataTip for the element at or nearest to the cursor.  As soon as this feature appeared, you asked for more in the form of longer strings for the prefix and suffix for better identification of the information shown in the DataTip.  This led to requests for multi-line DataTips and then to DataTips presenting information from more than one field.

Can we compute their contents?  DataTips are computed, not simply read.

Next came the desire to manipulate the “raw” values in an attribute field before they pop in as a DataTip.  An early example of this was the need to change the units of the value in the field before showing it in the DataTip or to combine real fields together to compute and present a new and more meaningful value.  In a parallel development elsewhere in the TNT products, the idea of defining and using virtual fields was evolving.  This capability made it possible to make new fields available that were not really there in the tables and records (in other words, they are virtual).  They are defined using an equation or TNT script from other real or virtual attribute fields in the table(s) and reevaluated every time they are used for anything.  These virtual fields appear and behave the same as real fields in the designated table and to other TNT processes.  In general, this approach is analogous to the use of computed fields in what is called a “view” in a database session and terminology.

At that conjuncture, it was easy to adapt the virtual field concept for use in the DataTip application.  So now the evolution of the DataTip had led to the ability to set up DataTips that presented in real time the results of a model computed from the values of the attributes at the current position of the cursor.  This procedure can be said to be “spatially aware” since when the cursor position is changed, this model is instantly computed from the current field values and the result then automatically pops in as a DataTip.  This was considered innovative at that time because, if some other program or database activity changed the field(s) in the attribute table(s), this changes the computed value of the virtual field and the corresponding DataTip.

Can we get modeled contents?  DataTips evaluate models.

You can use this feature to compute modeled results from complex equations to define the virtual field from geodata layers that may be hidden from view.  One example would be the use of the simple Universal Soil Loss Equation (USLE) to compute and display as a DataTip the potential soil erosion for any point in the image being viewed.  The equation defining the value of this virtual field would be derived from hidden vector layer(s) of soil properties and raster layer(s) of terrain properties.  These hidden layers do not even have to match the image layer being viewed in projection, cell size, area extent, and so on. 

Why can’t we style the content?  Complex DataTips get styled.

Innovation, or the application of others’ innovations to our products’ objectives, can not stop.  Computer power enables it, you demand it, competition requires it.  Through all this you and we continued to communicate and work together.  Thus, about a year ago at a weekly informal lunch meeting of the MicroImages software engineers, we were discussing how we could respond to your requests to improve the appearance of DataTips. 

The initial focus of the discussion was that the information presented in a DataTip would be easier to understand if they used font styles and tabs.  The immediate requirement causing this review at the meeting was the use of font styles to differentiate prefixes from values and units and to align the values vertically for easier reading. 

In a few minutes of discussion, it was concluded that this feature and many other related to formatting could be easily implemented for use in DataTips in a couple of days’ work.  Simply permit the DataTip text to contain the many format codes used in the text editor by modifying the DataTip display code to use them.  Within a few days this was applied and used in the attractive DataTip that pops into the Lincoln Property Viewer sample TNTatlas DVD accompanying this MEMO.  It is also illustrated in the accompanying color plate entitled Property Viewer Atlas for  Lincoln,  NE.    Easy, yes, but it requires today’s computing power and years of other earlier TNT developments to be interactive and to build and display many lines of formatted data from multiple layers in a fraction of a second.

Can the changing data change the style?  Enhanced DataTips arrive.

Next, at this same meeting, the idea followed that it would be useful if the text color and background color of the frame of the DataTip could be determined at the time of its display and changed based upon its current value.   These visual stimuli could be used to alert you or your user of some particular aspect of the content or the changing content of the DataTip.  For example, “red” background could indicate that the temperature, pressure, and other values for the flow in the nearest pipeline are critical and out-of-range, “yellow” that they are approaching critical, and “green” means that they are in safe range.  Of course, this is merely an example as you might want the pipeline and DataTip to automatically pop in to the view if its condition is “red” and approaching critical.  

A practical use of color to draw the attention of the user to specific conditions is illustrated in the color plate noted above by changing the background color of the DataTip and the corresponding value to alert you of the floodplain category of the property.  This zoning might be of particular interest since a lending bank may require the potential buyer to purchase expensive floodplain insurance, pay higher mortgage interest rates, or even have a no-loan policy for flood prone areas.  In this example on your sample DVD, all you have to do is move the cursor to the house of interest.  Alerting you to this special condition in this complex spatial reconnaissance TNTatlas would not be very interactive by other means.  For example, this zoning could be reviewed by turning on the flood zone vector layer for the view with polygons filled with transparent colors.  However, showing this and any of the other interrelated layers used in this DataTip would soon obscure the view and make it difficult to understand, particularly for your clients in other professions and with other backgrounds.

Another example of how to use enhanced DataTips would be to present the results of a Multi-Criteria Decision Analysis equation (MCDA) that applies linear weights to the attributes of several hidden vector objects (for example, land use, soil properties, elevation, slope, temperature, rainfall, …).  This MCDA equation would combine the attributes of these layers to populate a virtual table with virtual fields whose values are the suitability index for each potential crop.  The virtual field for each crop could even incorporate local production costs, conservation impact (for example, erosion potential), and market value for each crop and present these factors with or incorporated into these crop suitability indices.  All these virtual fields could be dynamically evaluated at any cursor position, combined, and popped into the view as a single attractive enhanced DataTip for all major crops with a layout similar to the enhanced DataTip in the Lincoln Property Viewer atlas. 

How could this MCDA-derived DataTip be used in a rural scenario?  Assume you or your client need to work with local land owners and land stewards who are not particularly computer aware and do not even want to know anything about geospatial analysis.  One objective is to show any one of them at any unscheduled time what is likely to be the most suitable crop(s) for their land using “appropriate technology.”  Unscheduled is the key word here; it’s when they walk into your office unannounced or you stop at their village with a portable computer.  If you start out by showing them some complex paper map prepared in advance or screen view of the suitability of the general area for each potential crop you are using “inappropriate technology” and will only confuse them. 

As an alternative, suppose you have prepared in advance a nice color image of the area, with an overlay of some general road, village, label, and property boundaries.  You then view this in a free TNTatlas, the new low-cost TNTview, or any other TNT product including a TNTserver.  You use this view to help them get their bearings in a 2D view of their general area.  You first and then they move the cursor around on the 2D view, and wherever they hesitate, an enhanced DataTip pops in showing clearly labeled values for the suitability of each potential crop for an area they can recognize from the image and its simple feature overlays in the view.

Maybe they need a 3D view or even a TNTsim3D opened to help them get oriented in the 2D view.  However, from this DataTip when moving the cursor around, they will easily get the idea of the comparative crop suitability.  They may be concerned at this point about how these values are derived, but could care less about how the underlying technology manages it.  Next they will want to see the general variability of the suitability of a crop in their area rather than these point results.   Now you or they can make a simple step further and turn on a single vector overlay showing in transparent color the suitability of a single crop for the entire area of possible interest, and so on.

But text is not the best way to present interrelated values!  GraphTips arrive.

The design for implementing a GraphTip approach for an interactive graphical presentation similar to DataTips was defined at the same lunch meeting.  We recognized that DataTips were getting complex and being used to present multiple lines of interrelated values.  It was then a small but innovative jump to discussing how this information might be presented in a graphical form as a GraphTip that pops in instead of a DataTip. 

GraphTips are an interactive form of pin mapping.  The simplest example of this is to pop in a pie diagram or a bar graph to visually show the percentage relationship between several database fields, for example the relative population of men and women in a county.  Yes, a pinmap layer or map could present this same graphical information by showing all the pins.  This is the way pin mapping is used in a physical printed map.  However, in an interactive setting all these pins, unless carefully controlled by scale, can obliterate the basic theme layers in the view and each other.  So now you can use GraphTips to present these same symbolic results as an interactive presentation that automatically shows these details for every position of the cursor.

Why are we limited to only one graph?  Display Control Scripts are added.

After these simpler GraphTip concepts were developed, even more complex applications of the GraphTip concept were discussed at a later informal lunch meeting.  These ideas were sufficiently complex and varied that they could not be achieved by further extension of the DataTip/GraphTip coding structure.  So the idea of using our codeveloped TNT geospatial analysis scripting language (SML) to provide for more real time, complex spatial decisions to determine what to draw and where to draw it.  Thus, the concept of a Display Control Script (DCS) was added to the TNT products. 

In some ways GraphTips created by a DCS are closely allied to the already familiar idea of using a TNT script to add new special tools to the icon bar or menu in the view.  However, you “pull information to you” with a Tool (Tool Script) since it only evaluates information about the position when you click on it.  A DCS “pushes information at you” in the form of instructions, graphs, images, or whatever you preprogram it to do if the cursor simply pauses on or near a feature in the layer.   

Examples of a Tool and a Display Control Script that have been deliberately designed to have very similar objectives (a moving spyglass view of another layer) are discussed in the technical sections below.  While Tool Scripts and DCSs have different internal structures, in application they may only differ in operation in a simple fashion.  A Tool is selected and turned on by your deliberate choice and action.  You then may get a dialog to define how the tool should operate.  The simplest dialog at the start of using a Tool might let you select the object in the layer list or any other overlapping object for use with the Tool.  You must then click the Tool in the view to initiate its activity. 

In contrast, a Display Control Script (DCS) is automatically evaluated every time the cursor moves a designated minimum distance in screen pixels and pauses a specified period of time, usually set to 0.5 seconds.  When these cursor movement/pause conditions are met, the DCS, which has been concurrently running, automatically operates on layers typically hidden in the view, or on objects in fixed directory locations.  These objects can be of changing size, content, different Coordinate Reference Systems, and so on but must be named and found in the preprogrammed directory positions or kept track of by some means, such as top or bottom layer. The DCS draws in a GraphTip and then closes it when the cursor is moved.  However, since it is a TNT script, it can take a wide variety of other geospatial actions leading to the next kind of dynamic application.  

Can we graphically present spatially interrelated results?  Dynamic Geospatial Analysis arrives.

Via the Display Control Script (DCS) we have ended up this RV7.0 development cycle with the idea that multiple GraphTips can pop into your view that are at positions that are spatially related to, but not at the pause position of the cursor.  These GraphTips can visually represent the data about features at remote locations in or off the edge of the view.  This is illustrated in the accompanying color plate entitled Exploring District Services.   

This is a dynamic analysis.  If you pause the cursor at any location on the color image of Lincoln, 3 GraphTips symbolically representing school buildings pop in at the location of the 3 different schools (elementary, middle, and high school) that serve the geographic location of the cursor.  Move the cursor and the school symbols move around appropriately. This is a DCS so no mouse click is necessary and its use is completely “discoverable,” simply pause the mouse over the view! 

In this example DCS, the cursor position is used to detect the property parcel from a hidden vector layer when the cursor is paused.  This parcel is overlapped by the three school attendance area polygons in the hidden school attendance vector layer.  This permits the point at which the school is located to be found in this layer and the GraphTip school symbol to pop in at that position.  The accompanying color plate entitled Using Overlapping Polygons graphically illustrates how the DCS uses these unseen vector elements.  This DCS script is listed and dissected on the backs of these 2 color plates.

Now it is up to you, at least for this development cycle.  Show us what you can do!

In many applications of TNTmips as a geospatial specialist, you are setting up materials for other professionals to use and exploit.  We might define their goal as “interactive spatial data mining” and we have decided to call this activity in the TNT products Dynamic Geospatial Analysis.  DataTips are now commonly used in your applications but took some time and improvements to become ubiquitous. 

While perhaps complex to set up, this school example is the latest crest of the wave of our innovations in this direction.   Each time we provide a new crest, you exploit it in innovative ways in your area of interest and extend our initial applications well beyond our ideas.  For example, you might set up geodata and GraphTips for an expert geologist to explore for spatial relationships in digital layers of geological geodata.   Yes, you or your client might find these conditions by successive “batch-like” applications of other geospatial analysis tools, in other words, you jointly think up a scenario and then run out the map for visual or hardcopy review.  However, this greatly reduces the chance that the expertise of the several professionals involved will be used to interact and “think spatially” rather than simply periodically “evaluate spatially.”   Can you think up ways to use these new interactive capabilities to search for spatial relationships that can be interactively discovered?

And we have not truly invented anything new!  “Innovation favors the well prepared!”

It is easy for us to think that we discovered or invented these new kinds of tools and ideas.  What in fact is happening is that “we are actually discovering” how to adapt and apply what we have observed elsewhere for use in the particular focus of our TNT products.  Most of these concepts discussed above are used in other types of application products, but not necessarily in competitive geospatial analysis products.  For example, many analogs of these ideas are encountered in web browsing if you are using a broadband connection and dynamic HTML, flash, SVG, and so on.  They are discovered and added to your TNT products using our building blocks as part of our efforts to maintain the most innovative, professional-level, desktop geospatial visualization and analysis software available.

Bigger, Bigger, and Bigger Projects.

Introduction.

The innovation in the TNT products discussed above is interesting and potentially useful in some of your applications.  But it is certain that the size and scope of your geospatial analysis tasks for the TNT products will grow and grow and continually require our development efforts to keep up.  You can handle these large geodata tasks in a lot of little orthoimage pieces or map units using a batch-like strategy, but this may impose limitations, such as edge effects.  You can also approach these tasks for your nation, state, or the world using large, single objects and Project Files. 

It should be clear to you that just as the outer boundaries of your projects expand toward some physical, geographical, or political boundary, the inner detail required will also continue to increase.  Available image resolution and extent will increase, GPS precision for line oriented materials will increase, datum and local coordinate reference systems will be refined, and so on. 

This is why the Coordinate Reference System (CRS) standardization and related modifications have been released in RV7.0.  These standardized coordinate systems are the base needed to build these obvious future “really big jobs” and meet their accuracy requirements.  For example, the new High Accuracy Reference Network (HARN) datums and transformations in and out of older datums are being introduced into geodata sets in Japan,  Europe, and the US to support new accuracy requirements. 

Future geospatial applications require standardized, industry wide, exchangeable, and accurate CRSs.  It may be as simple as resolving the current arguments between image providers about how to standardize the access to the CRS of JPEG2000 compressed images (*.jp2 files) moved around the Internet.  Or, it may be as complicated as some future application in automatically driving a vehicle.

As you need them, these new demands are met by our TNT upgrades released to respond to these new requirements in size and accuracy.  Often, it is you clients who are professional geospatial analysts (in other words, those using TNTmips as part of earning their living) who identify to us these new requirements by asking for these kinds of “bigger and better features.”  These improvements can then be applied by all clients whether you are developing geodata for a nation, state, or river basin or simply requiring very high precision for preserving the spatial relationship of features in managing a municipal infrastructure or recording and analyzing a small archaeological site.

Big Project Strategy. 

Throughout its existence, MicroImages has focused on getting the really large project completed as efficiently as possible on your desktop.  Our working premise is that if the TNT products can do the really large geodata storage, access, and analysis in acceptable times, the small activities of these types will appear to be nearly instantaneous. 

Your concept of what is a “really large project” for your TNT products has continuously ratcheted up over their 20-year evolution.  What is a “really large project” has primarily been, and continues to be defined by the availability to you of larger and larger inexpensive hard drives; CDs, then DVDs, and soon HDVDs as a publication media; the limits of your operating system; and other limits these hardware factors place on TNT objects and Project File sizes.

Our original conceptual design of the Project File, its objects, and their subsequent adjustments has enabled us to adjust the Project FIle to keep well ahead of these improvements in your storage, operating system, and processing power and the ever larger objects they permit you to use in your projects.  Today you do not hesitate to commit to undertake massive city, county, province, and country sized projects in TNTmips using single objects for each data layer.  

Your personal time is often most efficiently used if your project can be approached in this fashion, even if you need to run a complex TNT analysis task in the background while completing other work in a word processor or even when it continues running unattended overnight. Then often, upon completion of the project, you tile out the objects for export into other formats in smaller units so they can be used in less robust products.

Certainly your desktop hardware speed (processor, bus and drive access, memory, and so on) and the efficiency of a required TNT process control your efficiency in completing the task.  However, usually it is the storage media that enables you to consider undertaking it as a “really big project” rather than inefficiently in pieces or not at all.  Yes, you most certainly let us know when a particular process runs for hours or days.  We then go to work to determine if that process can be made more efficient and faster.  Sometimes it is a matter of the basic limitations of the current hardware.  However, in either case, you often move ahead with your “really big project” running slow tasks overnight or over the weekend.

Sample Past Improvements.

The Global Data Set DVD released as part of V6.9 and the Lincoln Property Viewer TNTatlas released with RV7.0 demonstrate that your large object approach to large projects can be viable and cost effective and differentiate the TNT products from others.  Keeping pace with your expectations in this area does require that new or completely revised building blocks and strategies are needed and must be gradually introduced and perfected.  Some of these “really large project” software strategies introduced over the past years in the TNT products are:

  • image pyramiding for very fast display of images at any scale,

  • periodic implementation of new and better means of raster compression,

  • optimizing the internal structure of a polygonal vector object,

  • providing simpler topologies when polygonal topology is not needed,

  • using geodata in objects closer to their original CAD and shape designs,

  • indexing large database tables, and

  • continuing effort to speed up topology validation.

How well have these past features you have had for years met these “really big project” goals as we have evolved forward?  Inserted here is a web comment addressing the last feature listed above.  It was picked up from a discussion on a forum for an inexpensive GIS product by a user of TNTmips 6.4 (circa 2000) and the latest version of the other product.  The TNTmips 6.4 version mentioned is now more than 4 years old, a long time in this rapidly evolving business.  The inclusion of this quote is not intended to be critical of the other low-cost products mentioned (they have their own design objectives), but to present a totally objective comment on how users of products react to how our products or their other products use their time. This posting is obviously a comment from a user who remains satisfied with the capabilities of V6.4 or has a lot of time and little money for upgrades.

From a posting to manifold-l@lists.directionsmag.com on 18 November 2004 

“Another interesting thing I've just been looking at (and I know this has featured in a few discussions, and [a name] mentioned that they're working on it) is the display time for a large drawing (75mb e00 file) of watershed basins (i.e. areas). I double clicked the drawing and it opened up and is still working away at displaying the basins (quite a while now) - in the meantime I've opened up TNTmips 6.4 and displayed it in there. The initial time was about 1 minute, thereafter redrawing took less than ten seconds (while Manifold is still not showing anything but the red dot in the right hand corner). I then overlayed the flowpaths (couple of tens of thousands of lines) on the basins in TNTmips, and again the initial display time was about a minute, and thereafter redisplaying, zooming in/out, etc/ takes less than 10 seconds. Selecting basins or flowpaths is almost instantaneous (recolouring the line/area as well as showing the attribute data in the table). How do they do it? I know this has been one of TNTmips' features for many years - very fast drawing/displaying of vectors and rasters. I've seen ArcView battling with less, and so do all the open source products (especially the Java products like Jump and OpenMap) that I've worked with. It takes ages for larger vector objects to display. I'm interested in how it's done - curious. I know there's a checkbox in TNTmips, when you import vector data: Optimize vector for display. Also, a process for optimizing old (pre 6.4, I think) vector layers. Any theories? What voodoo art do they use to get MSWindows to display these things so very quickly? 

Mmmh, no drawing yet - Manifold's still oozing along... :-) 

V7.0 Results.

A major portion of the effort expended in getting you RV7.0 is to alter and improve TNT features to accommodate your bigger, bigger, and bigger project materials.  These activities are summarized here in this context of largeness and robustness improvements in RV7.0 and are covered in much more detail later in this MEMO’s corresponding technical sections.

Mosaicking: making big raster objects bigger.

Assembling mosaics of large areas from good quality orthoimages and collarless, good quality, scanned maps is becoming common.  Often the source material is large in number (for example, thousands) and/or large in uncompressed size, but provided in a compressed form such as JPEG, MrSID, or PNG.  By necessity, the target is also compressed, such as in a JPEG2000 object or a JP2 file.  Mosaic can now accept as direct input any linked raster files, does not import them, and outputs the mosaicked object in any supported raster type including a compressed JPEG2000, JPEG, or standard lossless object.  To accomplish this kind of task, even if it is so big that it takes hours, has required a lot of attention to be given to the RV7.0 version of Mosaic.

Compression; making big raster objects small again.

JPEG2000 compression is now completely integrated for use in raster objects in RV7.0 of the TNT products.  For example, you can now mosaic directly into JPEG2000 compressed raster objects.  These objects can then be used as texture layers in your TNTsim3D, greatly increasing the texture raster dimensions of the Landscape File that can be distributed on a DVD.  JPEG2000 compressed images (as well as linked MrSID, and ECW) can be used to put much larger images into your TNTatlas on DVD and correspondingly for use by your TNTserver.  JPEG2000 files can even be served up by TNTserver to reduce transmission time to a TNTclient.

Shape Object: making shapefile layers faster.

Large, single shapefiles are beginning to appear of over a gigabyte, usually due to attachments to large database structures.  The use of the new shape object concept has been advanced in RV7.0 to greatly accelerate the ability of the TNT products to directly link to large shapefiles and use them just like any other layer in a TNT view.  Accompanying this has been the addition of procedures into this automatic link to show the shapefile’s legend entries and styles in the TNT LegendView for the linked object.  

Coordinate Reference Systems (CRSs): supporting the precision needed.

You can not do many types of large projects without accurate, standard CRSs and conversions between them and their possible datums.  RV7.0 introduces a completely revised CRS based on ISO standard 19111:2003.  For example, your large project might have a small geographic extent, such as a city, but require very high accuracies.  These could be difficult specifications to accommodate without using the new High Accuracy Reference Network (HARN) datums and datum transformations enabled by this new CRS management introduced first in RV7.0.

Merging and Combining:  assembling bigger, more complex geometric objects.

Copy/Paste, extracting, merging, and combining large vector, CAD, shape, and TIN objects can now be set up to run with fewer intermediate steps using the new Geometric Conversion Engine introduced in RV7.0.  However, the larger and more complex the objects combined directly into a polygonal vector object or converted later, the greater the possibility that conflation errors (in other words, microscopic topology errors) might occur.  This improved capability and your tendency toward creating larger geometric objects, particularly vector objects, have required substantial improvements in the validation of topology to detect and resolve these errors and in speed to accommodate all the additional computation and checking this necessitates.

Scale Control: preventing meaningless, slow displays of large geometric objects.

Even a trivial thing like displaying a large vector at meaningless map/view scales has been addressed.  Now you are given a warning in the form of a Dense Layer Verification window and options if the geometric object you are selecting to display at the current view scale is so dense that it will simply fill in the view in a meaningless mass of crisscrossing lines.

This Dense Layer Verification window is illustrated in the accompanying color plate entitled Managing Display of Large Vectors.  It will appear when you select a vector object for the current view that exceeds an element density threshold.  When this warning window appears, you are being informed that at the current scale of the view the vector will be slow to render and will solidly or densely fill in the area it covers.  You can choose to dispose of this window using several toggles.

Do not add layer.

Select this toggle if you simply want to skip this layer for the moment.  You can then use some other layer(s) to zoom into your view to the local area of interest, and then come back and add in this vector when it will display with a lower element density.

Add with full visibility.

This toggle overrides this warning window and displays the vector object.

Add with scale range of.

This is the toggle that is initially on by default for each new large vector object you display. Along with this toggle you are provided with data entry boxes to set the scale range of the view window over which this layer will be drawn in the view.  Each box will have a default scale value in it that you can edit.  The larger value will determine how far you zoom into the view for this layer to begin appearing.  It is determined to be a reasonable scale from the element density.  The lower value is initially zero.  If it is set to some other value, it will determine when the layer will cease to appear as you zoom in further and further.  If you set this toggle, the current values in this window will be saved with this vector object and appear as defaults in the Dense Layer Verification window the next time the vector is added as a layer in any view.  If you want to change the scale range previously set for any layer, reset it the next time it is added or choose  Show Scale Ranges from the Options menu in the Group or Layout Controls window, and change it there.  

Add initially hidden.

This toggle adds the vector to the layer list as a hidden layer.  You can then toggle the layer on when you have zoomed into the view to a scale at which it is needed and will not be so dense that it obscures all other previously added layers.

DV7.1. Making it even better.

In DV7.1 we plan to experiment to see how other kinds of modifications can improve, or at least keep pace with, your ever increasing project sizes.  At least two areas of investigation are related directly to how fast you can work in your TNT products.

Buffering Individual Layers.

As you know, big geometric objects can take time to add to a composite view each time any layer is turned off and back on.  Using a new memory buffering approach, it may be possible to add individual new layers to a view or toggle those already showing off and then back on without regenerating all the other layers in that view. 

Selecting File Opens a View. 

Another feature of possible wide interest, which has already been implemented in DV7.1 in its initial form, is the ability to double click on a file with a supported extension (for example, *.jpg, *.jp2, *.shp, *.sid, and so on) and automatically open the TNT product registered in Windows for this file, the X server and the display process, link to the object, and display it. You can also click and open to run an SML script (*.tkp, *.sml), or a Landscape File (*.sim) for TNTsim3D, or a Project File (*.rvc).  Selecting a Project File in this fashion will open it in the registered TNT product using the first layout, the first group, or the first object it finds in that Project File.  Methods for determining and controlling which of these objects to open when more than one is present are currently being explored. This new capability is currently limited to Windows but will soon be made available for Mac OS X and other TNT supported operating systems.

Yes, this click and go even works for a single layer if the free TNTatlas/X is installed and is registered in Windows as the software used to open any of these extensions. TNTatlas/X is downloaded and installed as part of every TNTlite and does not have the object size limitations of the other TNT products included in TNTlite.  Thus, any supported file type or TNT object can be opened in this fashion by a lite user and use all the features and tools in TNTatlas/X, but only one object at a time.   If you want to view more than one layer or layout then install and register these extensions for use with the new, lower cost TNTview product.  Using the mouse to select a *.jp2 or *.sid file of many gigabytes before or after compression can automatically open TNTatlas (or your other TNT product) to view the raster in seconds!  Shapefiles may take a few more seconds but work just the same.  Will this new feature make the RV7.1 TNTatlas the most powerful and useful FREE geodata viewer available?

New Feature Priorities.

Will the feature be there when you need it?

The TNT products probably cover the widest range of geospatial application areas and uses of any single product without expensive extensions or options.  However, in a specific project, you often concentrate your use and requests for new features in a specific area.  For example, your interest is primarily in using TNTatlas as a geodata publishing tool.  You may go along in this fashion for years with this activity and may not feel you need to keep your TNTmips current.  Suddenly you encounter a situation, say a new operating system, new hardware lacking an earlier feature (for example, a portable with no parallel port), a data source such as MrSID, large mosaics, a detailed project area with a special local coordinate reference system, and so on.  Any one of these may require you to take advantage of the newest features in the latest version of TNTmips to make your TNTatlas.  Depending upon the potential generic nature of your request, you will find it has been addressed in a recent version of the TNT products.  If you do not find that feature in the current version, you begin to lobby for it or even for a completely new direction in product development (for example, the introduction of manifolds in this release).  Every request we receive is documented and assigned a priority.

It’s a case of setting priorities. 

At the present time we have 2750 new feature requests of varying priorities, which have accumulated over the last 20 years. The majority of these were not logged by you, but internally by MicroImages’ staff as part of our internal design decisions.  RV7.0 completed 281 new feature requests from this list while 404 were added since RV6.9.   To manage our resources and product development we have to establish priorities for which new features we add and which we do not add for each new release. Once you have received back the code number assigned to any new feature you have submitted, you can check the priority we give to it at www.microimages.com/support/features/.  The initial priority we assign to a new feature request is based upon our perception of whether or not that feature represents a commonly needed feature for our clients.    However, assigning a high priority to any new feature does not mean that it will be in the next release.  Often this is because it requires some lower level, underlying, and not obvious developments in the TNT code and must await these developments; it can already be accomplished by other TNT procedures; it is large and complex to implement; or it simply becomes less important due to other internal software or operating system changes.

Increasing a priority.

Finding that a less than high priority has been assigned to your new feature request does not mean you should give up on getting it.  Sometimes you have to be persistent and convince us that it is in our interest and that of other clients to raise its priority.  Or, you may want to discuss the possibility of contracting with MicroImages to add that feature to the TNT products.  Often we will cost share the expenses of such developments.  But, even if it is added in this contract fashion, the feature will not be proprietary and will become available to everyone in the next TNT release.

  Opportunity costs. 

Many commercial product companies will not respond to custom feature requests.  Why?  Because the true cost, not your perceived cost of commercial software development, is not obvious.  These are called “lost opportunity costs.”  This is the cost(s) of not completing the most important features of common and wide interest at the earliest date with a limited resource, in this case the time of the software engineering manpower a