User Interface Basics

Let's take a tour of Manifold, beginning with the desktop and learning how to navigate within windows.  This topic assumes we have already read the Getting Started topic.

The Manifold Desktop

Launch Manifold and the desktop opens with a typically Windows-style menu bar and an icon-based toolbar at the top.  The Project pane, Layers pane, and Contents pane are docked on the right side of the Manifold desktop.   We can undock them by Shift-clicking their tabs.

 

 

i_desktop_med.png

 

 

tech_tina_sm.png

ico_nb_arrow_blue.png To fit into this documentation, Illustrations show an artificially small Manifold desktop.    In real life we would use a much larger Manifold desktop, to provide plenty of room for display windows and for controls like the Project and Contents panes.   

 

Tech tip:  Users often undock display windows and panes by Shift-clicking their title tabs.  Monitors are cheap and our time is valuable, so most GIS users work with their Windows desktop spread across two or three monitors, with big, undocked windows.  

 

Manifold users will often have several different Manifold projects going at the same time so they can copy and paste between those projects.   Workflow can be much easier using several different Manifold projects open in different Manifold sessions at the same time.

 

i_desktop_file_open.png

 

Use File - Open to open a Manifold .map project file, and the Project pane will be populated with the contents of the project.  

 

 

i_desktop_opened_project.png

 

 

The title bar shows the name of the project, Aus Hydro, taken from the name of the .map file.   The project contains three drawings and three tables.  Each drawing shows data from an associated table.  The project also has a map called Australia Hydro.   Maps have layers, where each layer shows some other component, like a drawing or an image.

Windows

 

desktop_double_click.png

 

 

We can double-click the Australia Hydro map to open it.

 

 

i_desktop_opened_map.png

 

 

The map opens up in a map window.  A tab at the top gives the name of the window.   In the illustration above, we have zoomed far into the map, which shows all water features in Australia.  When first opened a component will be zoomed to fit, so the entire component fits within the window.

 

 

i_desktop_labeled.png

 

 

Maps contain one or more layers that are drawings, images or labels.   Layer tabs appear at the bottom of a map window, with a tab for each layer in the map.   

 

Drag layer tabs left or right to set the order in which layers are displayed in the map.   Double-click a layer tab to turn a layer off and on.  Click a layer to make it the active layer for selection or editing.    The Layers pane makes it easy to manage many layers, when there are too many for convenient use of layer tabs.

 

Most maps use the default, "North up" orientation.  We can easily create a rotated view if we want an orientation other than North up.

 

 

i_desktop_opened_taboff.png

 

 

In the illustration above, we have turned off the WatercourseLines layer by double-clicking the tab.

Panes

We can switch between the Project pane, Layers pane, and Contents pane by clicking their tabs.    

 

 

i_desktop_opened_content_layers.png

 

 

Click the Layers pane tab, for example, to switch to the Layers pane That allows us to control the order of layers, the opacity of layers, and to turn layers off and on, applying changes to many layers at once, if we like.   The Layers pane also allows us to group layers within folders.   The Layers pane is more convenient to use than tabs when maps have many layers.     

 

When the Manifold desktop is sized for real-life use, and not artificially small like in these illustrations, the Layers pane has plenty of room for very many layers, and it provides easy means (the Filter box) to find desired layers even when there are hundreds of layers in a map.

 

Click the Contents pane tab to switch to the Contents pane.

 

 

i_desktop_opened_content_component.png

 

 

The Contents pane has a variety of useful sub-panes, with the name of the sub-pane being used in a caption at the top.   Click the caption to change to a different sub-pane.

 

The Contents pane starts out showing the Component pane, which reports info on the active layer.   The active layer is shown with a darker colored tab.   The Component pane also allows us to change the projection (coordinate system) of either the map window or of any layer in the map window, including a layer that is not currently shown.

 

In the Contents pane, we can click on the Component sub-pane caption to choose a different sub-pane.  

 

 

i_desktop_opened_content_style.png

 

Switching to the Style pane, we can see controls for changing colors and symbology.   In the illustration above we have clicked on the Lakes tab to make that the active layer, so the Style pane shows formatting used in that layer.

 

Controls can automatically call up the right pane.  For example, Alt-clicking a feature in the active layer, called an object in Manifold, picks that object for display in the Record pane.  To pick an object from any visible layer, and not just the active layer, Shift-Alt-click the object.  It will be picked and the layer it is in will become the active layer.

 

 

i_desktop_opened_record.png

 

 

When the Lakes layer is active, we can Alt-click on a lake and the Record pane will automatically pop open to show attributes, that is, the values for fields, for that object.   

 

The lake we clicked is called Devil's Playground.     The object picked is shown in the window with edit handles on the coordinates that define the object.   We can edit those by clicking on the Coordinates tab of the Record pane.

 

 

i_desktop_opened_record_a.png

 

 

When maps have many similar layers it might not be easy to remember what feature is in which layer.   For example, the extensions of the water features to the left of the map display window might be in the Lakes layer or they might be in the WatercourseAreas layer.   If we do not know, we can pick such a feature using Shift-Alt-click, which will pick any visible object from any layer.

 

 

i_desktop_opened_record_b.png

 

 

A Shift-Alt-click picks the object and also makes layer it is in the active layer.  In this case, we see the feature that we Shift-Alt-clicked is an area called Brians Watercourse that is in the WatercourseAreas layer.   Shift-Alt-click works from the top layer down.  If we Shift-Alt-click in a spot where several objects from different layers overlap, the uppermost object at the spot clicked will be picked.

 

ico_nb_arrow_blue.png

 Using the Layers pane, we can specify if a layer in a map allows picks or disallows picks.  By default, layers allow picks, so by default if a layer is turned on then Alt-click or Shift-Alt-click will pick objects in the layer.   If we use the the Layers pane to turn off picks in a layer, then Alt-clicking or Shift-Alt-clicking an object in that layer will not pick it.

Projects

Projects contains items like tables, images, drawings, maps, data sources, queries, scripts, and more.  These are called components.  

 

icon_table.png

Tables - Where all data within Manifold is stored in one form or another.  Opening a table window shows a table in classic row and column presentation.    A drawing or an image is just a viewport that shows geometry data or raster tile data that is stored in some table.   That is why when we see a drawing or image in the project we will usually see a similarly-named table from which it takes its data.

icon_drawing.png

Drawings - A visual display of vector data stored within tables using a variety of geometry types. The same data can be seen in multiple different drawings using different styles, and the same drawing can be open in multiple windows with different selections and views in each.

icon_data_source_cylinder.png

Data Sources - Data linked into a project from an external source, which could be a file, a file database, a database serve or a web server, covering virtually every database and file type encountered in database or GIS work.

icon_image.png

Images - A visual display of raster data stored within tables as tiles using a variety of different data types and channel combinations.   All rasters are called images in Manifold even those which are terrain elevation or other non-photographic data.

icon_labels.png

Labels - Text annotations automatically created from the fields of a drawing's table.

icon_layout.png

Layouts - Layouts are compositions on virtual sheets of paper, allowing us to create documents showing maps or other components as PDF documents or hard copy printed sheets.

icon_location.png

Locations - Locations save a particular geographic location with an associated scale, thus saving a given view in a map or other window to which we can return.

icon_map.png

Maps - Consist of a stack of layers where each layer is a drawing, image or labels component.

icon_query.png

Queries - Written in SQL, queries manipulate data and projects, for example, creating new tables and other components, performing calculations,  altering the structure of databases and tables, and extracting, editing and analyzing subsets of data.

icon_script.png

Scripts - Manifold includes built-in support for scripting in eleven different languages with six to eight always available and the remainder easy to install.  Scripts provide custom capabilities and can automate virtually anything.

icon_comments.png

Comments -  Text saved and displayed in a comments window provides a simple but  convenient way to save notes about a project or to save text as a scratch pad.  For tips on editing Comments, see the Editing Queries, Scripts and Comments topic.

icon_folder.png

Folders - We can organize our project by using folders.

 

Opening Components

We can open a component by double-clicking it in the Project pane:

 

 

i_desktop_opened_lakes_table.png

 

 

Double-clicking on Lakes Table in the Project pane opens it in a window.  A tab for the Lakes Table window appears next to the tab for the already open Australia Hydro map window.    

 

We can Ctrl-click on a table's column header to sort that column.  Ctrl-clicking toggles between sorting ascending and sorting descending.  In the illustration above we have Ctrl-clicked the column header twice for the Name column, first to sort ascending and the second time to sort descending.

 

We can sub sort by additional columns by Shift-Ctrl-clicking the header for an additional column.  See the Sorting Columns topic.

 

Manifold opens up new windows as docked windows, as seen above.  It is easy enough to click on the tab for the window we want, but in real life many Manifold users will Shift-click the name tab for a window to undock it.   They will then resize the window and move it around on their Windows desktop to a convenient place.  That allows them to see both the Lakes Table window and the Australia Hydro window at the same time.  

Windows

We can switch back and forth between different windows that are opened by clicking on their tabs,   For example, we can click on the Australia Hydro tab to switch to that window:

 

 

i_desktop_opened_map_window.png

 

 

The Manifold desktop by default arranges windows to the left and panes to the right.    We can drag the boundary between the windows section and the panes section to make the docked panes section wider or narrower.

 

 

 

 

 

 

 

 

 

icon_message_red.pngIf we double-click open a component and a red message icon appears in the window's lower tab, we should choose View - Messages from the main menu to read the message.   Blank drawings showing a message icon usually indicate lack of a spatial index, which Manifold will offer to build for us.  Blank images showing a message icon usually indicate a need to build or update an index or intermediate levels, which Manifold will offer to do for us. i_mouse_moves01_02.png

 

Panning and Zooming with the Mouse

The cursor mode button in the main toolbar chooses the mouse mode.  The default is navigation.  The drop down menu on the cursor mode button provides other choices depending on the context, such as creating objects in drawings, or adding text frames in layouts. or measuring distances with the tracker tool.

 

 

il_default_mouse_nav.png

i_mouse_moves01_01.png

Click-and-drag anywhere in the window to pan the view by dragging it.

 

Right-click and drag to draw a zoom box with the right mouse button.  Release the button and the view will zoom into that box.

 

Wheel to zoom in and out with the mouse wheel.  

 

Menu buttons allow Back and Forward view commands, Zoom to Fit, Zoom In, and Zoom Out.   Mice equipped with auxiliary buttons giving Back and Forward functionality will also work.

 

Most users will navigate using the mouse.  Using click-and-drag to pan, right-click and drag zoom box and the wheel to zoom in and out is very fast and convenient.

 

Zoom to Fit Shortcuts on Tabs

The following commands work with any window that has a tab at the bottom.  Right-click a layer tab for a context menu giving the same choices, plus other useful commands.

 

eg_quick_zoom_to_fit01_01.png eg_quick_zoom_to_fit01_02.png

Ctrl-click the bottom layer tab of any window to Zoom to Fit the contents of that layer.

 

eg_quick_zoom_to_fit01_03.png eg_quick_zoom_to_fit01_04.png

 

Shift-Ctrl-click will Zoom to Fit any selection that is in the layer.   This is a great way to see in a drawing or map layer those objects that have been selected in a drawing's table.  

 

See the Manifold 9 - Incredibly Convenient Zooms video for the above in action.

Changing Colors and Appearance

Change colors and formatting of layers by using the Style pane in the Contents pane.    

 

ico_nb_arrow_blue.png The small illustrations used in this documentation make it difficult to illustrate style controls, especially for thematic formatting.  In real life, we either would work with a full screen display, which provides plenty of room, or we would Shift-click the title tab for the Contents pane to undock it,  as seen in the third example below, to make it as big as we would like.

 

Some GIS packages are limited to only one geometry type in a layer, for example, only areas, or only lines, or only points in a layer.  Manifold allows a mix of areas, lines and points in the same layer, so the Style pane shows controls for all three types of objects.   The illustrations below use a mix of Style features for areas, a thematic format for lines, and a camera symbol for points.

 

 

il_changing_colors_and_appearance_01.png

 

 

To change the Fill color for areas from a soft ivory beige color to a slate blue, we click on the parameter button for Fill color for areas.

 

 

il_changing_colors_and_appearance_02.png

 

 

We choose the desired color from the many colors in the drop down menu, and the display is immediately updated.   

 

If we like, we can specify a thematic format for any parameter by selecting a field that will drive that thematic format.   In the illustration below we use the mfd_id field to drive thematic formatting for Fill color for areas, so the areas are colored based on the value of their mfd_id field, interpolating between five different colors.   

 

In the illustration below, we have Shift-clicked the Contents pane tab to undock it, so the Style pane can be made bigger.

 

il_changing_colors_and_appearance_03.png

 

See the main Style topic for links to using the Style pane with drawings, images and labels layers.  Manifold provides a vast number of capabilities and symbol options to provide exactly the look we desire.  In the illustrations above, for example, we have used an inner border effect for areas, and we have placed a very thin halo effect on lines, to outline the edges of lines in black.

Tab Strips

A row of tabs is called a tab strip.  Docked windows in the Manifold desktop will typically have a tab strip at the top, which allows us to choose which window is displayed, and a tab strip at the bottom, which allows us to manipulate layers in the displayed window.

 

 

 

 

 

 

 

 

 

 

 

The illustration below shows a Manifold desktop with a map window open on the left and two panes open on the right.  The map has three layers, shown in a tab strip at the bottom of the map window.  

 

 

i_panes_tabs_overview.png

 

 

The panes on the right are the two main panes, the Project pane and the Contents pane.   The Project pane and Contents pane are opened by default when Manifold first launches.

 

 

i_panes_tabs.png

 

 

In the illustration above the Project tab is shaded because it is the active tab.   Clicking on a tab will switch to the pane for that tab, bringing it to the front for viewing.   For example, we can click on the Contents tab to bring the Contents pane to the front.

 

 

i_panes_tabs_01.png

 

 

The Contents pane has panes that apply to whatever window or window tab is active.  We can choose different panes for the Contents pane using the pull-down menu at the top of the Contents pane.

 

The last pane active will appear when we click the Contents tab, with the Component pane opening by default.   In the illustration above the Component pane displays coordinate system information for the active Map window, Australia Hydro, as well as coordinate system information for the active layer in that map, the Lakes layer.

 

 

i_panes_tabs_01aa.png

 

 

If we click on the WatercourseAreas layer tab in the map to make it the active layer in the map the Components pane will switch to displaying information for the WatercourseAreas layer.   

 

 

i_panes_tabs_01a.png

 

 

We can pop open any of the Contents sub-panes by choosing another pane in the pull-down menu.  

 

For example, if we can click on the Component pane's title bar and choose the Style pane.

 

 

i_panes_tabs_02.png

 

 

The Style pane allows us to choose colors and symbology for the active layer.   We can switch back to the Project pane by clicking on the Project pane tab.

Seeing the Full Names of Tabs

The illustration below shows a Manifold project with five docked windows open in the Manifold desktop.

 

 

i_panes_tabs_02a.png

 

 

The upper tabs show one map window, three drawing windows and one table window as can be seen from the icons in the tabs.   Given the small size of illustrations the tabs are too narrow to show the full names of the windows.  

 

That can also happen in big desktops if we have many docked windows open.   Tab strips will try to fit all tabs into the available space, reducing them in size as much as reasonable but eventually as they get too small for the available area tabs will be scrolled out of view.   

 

i_tabstrip_triangle.pngi_tabstrip_tri_pulldown.png

 

To display the full names of tabs for windows or panes or to see tabs that are out of view we can click on the downward triangle in the tab strip.   That will open a pull-down menu that shows the full names of each tab with a button by the name of the tab that is displayed.  We can click on an item in the list to choose that tab and bring that window to the top for viewing.

 

Tab strips will always keep the selected tab in view. Switching to a tab that is currently scrolled out of view brings it into view, so if the tab strip is not large enough to show all tabs (even with tab size reductions), these tabs can be accessed via the pull-down menu.

Shift-click to Undock a Pane

Panes and windows may be undocked by Shift-clicking their tab.  

 

 

i_panes_tabs_03.png

 

 

For example, we can undock the Project pane by Shift-clicking the Project pane tab.

 

 

i_panes_tabs_04.png

 

 

Undocked windows and panes may  be resized and moved about on our Windows desktop.    We would normally move an undocked Project pane to some other place on our Windows desktop, where it would not cover other Manifold windows and panes.

 

See also the Example: Project Pane Tutorial topic for a guide to typical actions using the Project pane.

Shift-click to Undock a Window

Shift-click the title tab for a window or a tab to undock it.      

 

eg_alt_click_undock01_01.png

 

We can Shift-click the title tab for a window, as in the title tab for the Lakes Table window above.

 

eg_alt_click_undock01_02.png

 

The table undocks into a separate window, which we can move about on our Windows desktop and resize however we like.    Shift-clicking on the caption bar docks it again.

 

eg_alt_click_undock01_03.png

 

If we undock the window again during the same Manifold session, Manifold will undock it back to the same place and size on our Windows desktop as before.

 

Organize with Ctrl-Click

Ctrl-click a docked pane's tab to open that pane vertically below the other pane.  Drag the border as desired between the two open panes.  Ctrl-click again either tab to close them into a single tabbed row.

 

 

i_panes_tabs_05.png

 

 

Ctrl-click the Contents pane tab to open the Contents pane in a second row below the Project pane.

 

 

i_panes_tabs_06.png

 

 

The Contents pane opens up in a second row below the Project pane and Layers pane.  We can drag the border between the two to arrange the relative heights of each.

 

Ctrl-click to pop the Contents pane back into position next to the Project pane tab.

 

Just as with panes, we can Ctrl-click to arrange a docked window into a second row of windows:

 

 

i_panes_tabs_07.png

 

 

We Ctrl-click the table's tab above to open it in a second row.

 

 

i_panes_tabs_08.png

 

 

tech_yoshi_sm.pngWe can drag the boundary between the upper and lower window to arrange each to the vertical size we prefer.   Ctrl-clicking the table's tab will again close it into a single tabbed row.

 

Tech Tip: As a practical matter, most Manifold users work with a large Windows desktop, using two or three monitors. With such a setup it is more efficient to undock windows with an Shift-click than it is to tile a smaller Manifold display using Ctrl-click.

Status Bar

A status bar at the bottom of the main Manifold desktop window provides information and tips.  A small dimple in the lower right corner of the desktop changes form and color when Manifold is working in foreground or background.

 

i_icon_busy_dimple.png   i_icon_busy_dimple_active.png   i_icon_busy_dimple_hover.png

When the activity indicator shows that Manifold is working, hovering the mouse cursor over the dimple will report the number of active background processes.

 

il_status_panes01_01.png

 

Right-click onto a blank portion of the status bar to turn optional panes on or off.  The Position pane and the Scale pane in the status bar are on by default.

 

 

il_status_panes01_02.png

The Position pane reports the current mouse position, using Latitude / longitude decimal degrees format by default.   Right-click onto the Position pane to change the format.

 

il_status_panes01_03.png

 

Right-click onto the Scale pane to change the scale used for the active window.   Changing the scale changes the zoom level.

 

eg_status_bar_scale01_02.png

We can choose from a list of typical scale values or specify a custom scale.  The active window will immediately zoom to the scale specified.

Cursor Modes

In the beginning we spend most of our time viewing data.   As we learn more we will want to make measurements using the Tracker, or to edit drawings by creating points, lines or areas.

 

tbar_cursor_mode_line01.png

 

The drop-down menu on the mode button lets us choose a different mode, offering choices depending on what window is active.  When working with a drawing, if we choose Create Line the mouse cursor user interface switches from Navigation mode into Create Line mode.

 

tbar_cursor_mode_line02.png

 

The mode button always shows what mode applies for that window.   

 

ico_nb_arrow_blue.png  Different windows can have different modes, with one window being in Create Line mode while another window stays in Navigation mode.  As we switch between windows the mode button will automatically switch to show the mode for that window.    The drop-down menu for the mode button will show appropriate choices for whatever is the active window.

 

il_switch_layout_create_label01.png

 

For example, if a layout window is active the drop-down menu for the mode button will show choices that work only for layouts.

Measurements

Make measurements in open windows using the Tracker tool to report length and bearing.

Getting Information / Show Attributes

Objects seen in a drawing will often have attributes, that is data fields associated with that object's record in the drawing's table.   We can see that information by clicking on a drawing's tab to make it the active layer in a map and then alt-clicking onto the object.

 

In the illustration below we have opened the meteorites.map project that may be downloaded from the Manifold Viewer download page as an example.   The map displayed has three layers: a drawing showing the find locations of Martian meteorites that are indicated with magenta triangles, a drawing showing the find locations of lunar meteorites that are indicated with blue triangles, and a background layer that is a satellite image automatically downloaded from a Google imageserver.

 

 

il_record_values01_01.png

 

 

We click on the martian meteorites layer tab to make it the active layer (in case it is not already the active layer) and then we alt-click on a Martian meteorite point to pick that point, to see the data for that point.  That will switch to the Contents pane and automatically pop open the Record pane's Values tab to show fields for the picked object's record.  

 

If we alt-click onto an object in a layer that is not the active layer, nothing happens.  That is an important feature that helps us pick objects of interest in busy maps.  If there are other objects in other layers, such as an area object in a layer beneath the active layer, we do not have to worry about accidentally alt-clicking those instead of the object we want.

 

 

il_record_values01_02.png

 

 

The Record pane's Values tab shows the field values, called attributes in some GIS packages, for the object we alt-clicked.  In the map window the picked object is marked with a small square at the coordinate location that defines the point, with a wider square box to help direct our attention to the picked object.  

 

In this case we see that the name of this meteorite is Dar al Gani 1051, that it was discovered in 2000 in  Libya, and that it is officially verified as both a meteorite and as a piece of Mars that has made its way to Earth.  

 

 

il_record_values01_02d.png

 

 

If we click on the Coordinates tab of the Record pane we see the coordinate geometry of the picked object.  In the case of a point that is only one X,Y coordinate row, but in the case of a large area that could be many rows of coordinates that define the area.   The blue box marking the designated object increases in size.  Note that the coordinates reported in the Record pane may not be the same as reported in the status bar Location readout, since the status bar reports the position of the mouse cursor.   A mouse cursor click very near the object will be interpreted to be a click on the object.

 

 

il_record_values01_02a.png

 

 

Panes in the Content pane are always live action, so we do not need to worry about closing dialogs before doing something else.  If we want to see record values for a different object, such as the neighboring Martian meteorite, we simply Alt-click on that and the Record pane will instantly show values for that object.

 

 

il_record_values01_02b.png

 

 

The name of this meteorite is Dar al Gani 735, and it was discovered in 1997.   

 

Note from the illustration above that a scroll bar appears in the Record pane, since there are more fields in the list than can fit into the current size of the pane.    Navigate within the Record pane using the scroll bar, or use keyboard commands such as the up arrow and down arrow, or Page Up and Page Down, or Ctrl-Home to jump to the top of the list and Ctrl-End to jump to the bottom of the list.

 

il_record_values01_02c.png

 

We can Shift-click the Contents tab to undock the Contents pane and then resize it to provide more vertical space for display of all fields.   

 

The Values tab allows editing of field values.  For example, if we wanted to we could double-click into the 1997 value to change it to 1996 if the original value was incorrect.   Field values that may be edited are shown with white background while field values that cannot be edited in the Values tab are shown with light gray background.  For example, we do not edit the geom data type in the Values tab.  Instead, to edit object geometry (in this case simply moving the point by editing its coordinates) we would click on the Coordinates tab and edit the coordinates there, or we could click on the Coordinates tab and drag the point to a new location in the map window.

 

We Shift-click the title bar of the Contents pane to dock the pane again.     To "unpick" the Dar al Gani 735 meteorite, we can Alt-click anywhere in the map other than on a meteorite.

 

 

il_record_values01_03a.png

 

 

We click on the Project pane tab to switch to the Project pane.   We double-click open the drawing's table, martian meteorites Table, so we can take a look at the meteorite's record in the table.  

 

ico_nb_arrow_blue.png Another way to open the drawing's table is to right-click on the martian meteorites tab in the tab strip at the bottom of the map, and choose Open Table in the context menu.

 

We Shift-click the title tab for the martian meteorites Table, to undock it.

 

 

il_record_values01_03.png

 

 

In the illustration above we have ctrl-clicked the meteorite to select it.   The meteorite icon in the drawing layer switches to red selection color and the corresponding row in the table also switches to red selection color.

 

We can adjust the width of columns in a table and hide or show columns using the Layers pane, as we have done in the illustration above, to show only the columns we want to see.

Open in Multiple Windows

Double-click an item in the Project pane to open it in a window.   The same component can be open in more than one window at the same time, with each window providing totally independent panning, zooming, and other navigation capabilities.   i_window_newwindow.png

 

To open a component in more than one window:

 

  1. Open the component by double-clicking it in the Project pane.

  2. Make sure that window is the active window by clicking its tab or title bar.

  3. Choose Window - New Window from the menu.

 

Opening the same component in another window will add a distinguishing number to the name shown in the tab or title bar.  For example, if we open a table called Customers in a window and then we open the same table in a second and third window those subsequent windows will be named Customers (2) and Customers (3).

 

Windows for Everything

Windows display the contents of components in the project.  Windows appear in a stack of docked windows in the large open area of the Manifold desktop, each window with a tab giving its name.

 

Different components will appear in windows adapted to display their contents with three basic types of windows used:

 

 

 

 

A map window:

i_desktop_intro_map.png

 

Map windows have a tab strip at the bottom of the window that shows all of the layers in the map.  Double-click on a layer tab to turn that layer off and on.  Layers in a map persist.  If the map is closed and then opened, any layers added to the map will still be there.

A drawing window:

i_desktop_intro_drawing.png

 

Drawings can include a mix of areas, lines and points.  The above drawing uses lines to show water courses in Australia.  The same drawing also participates as a layer in the map window.   

 

Like Map windows, drawing windows also have a tab strip at the bottom of the window that shows all of the layers in the drawing window.  Double-click on a layer tab to turn that layer off and on.   Layers in a drawing are a temporary convenience.  We can add layers to a drawing, but if we close the drawing when we next open the drawing the layers will be gone.   We can convert a drawing with layers into a map by choosing Edit - Save as Map.

An image window:

i_desktop_intro_image.png

 

 

While we usually think of images as photographs, in Manifold an image can be a visualization of any raster data set.  The image above, for example, shows a false color image where the colors represent the intensity of gamma ray emissions from radioactive potassium, thorium and uranium.  Blue colors indicate greater intensity from uranium.

 

Like Map windows, image windows also have a tab strip at the bottom of the window that shows all of the layers in the image window.  Double-click on a layer tab to turn that layer off and on.   As with drawings, layers in an image are a temporary convenience.  We can add layers to an image, but if we close the drawing when we next open the image the layers will be gone.   We can convert an image with layers into a map by choosing Edit - Save as Map.

A table window:

i_desktop_intro_table.png

 

 

Everything in Manifold is ultimately a table so we should become familiar with table windows.  We normally would work with tables in a much larger, undocked, window than seen above.   Table columns can be read-only (light gray background) or fully editable (white background).

 

ico_nb_arrow_blue.pngA table must have an index to be editable.  See the Editing Tables topic.

A command window, for SQL:

i_desktop_intro_command.png

 

With everything a table in Manifold, we can do whatever we like with a query in a Command window using SQL, by far the most popular of all languages for databases.  Command windows provide a Query Builder tab, a Results tab and a Log tab that facilitate creating and running queries.  

 

The query text above is:

 

SELECT [NAME] FROM [Lakes Table]

   WHERE StringLength([NAME]) > 1

   ORDER BY [NAME];

 

The query builder in the Command Window makes it easier to create queries with greatly reduced need to manually keyboard, although of course we normally would work with a much larger, undocked, Command Window than shown in the illustrations above.

 

Manifold can also write queries automatically for us, either using a simple drag and drop interface or a dialog button.

The result of a query:

i_desktop_intro_results.png

 

Run the query by pressing the ! Run button in the main toolbar.   The Command Window automatically switches to the Results tab.

A command window, for JavaScript:

 

i_desktop_intro_v8.png

 

 

We can program Manifold in many languages. See the Scripts topic.  The script above uses V8 JavaScript to compute a factorial.  

 

function factorial(n){

  return n===1 ? 1 : n * factorial(n-1);

}

factorial(6);

 

V8 is recursive, so we can use recursion to write an elegant and fast factorial function.  JavaScript using V8 is most convenient and considered the default standard language for Manifold since V8 is built into the default Manifold installation, along with many other languages.  Among the eleven languages Manifold automatically supports, both IronPython and IronRuby are automatically supported if installed.  

Running a script:

i_desktop_intro_v8result.png

 

 

Press the ! Run button to run the script.  With V8 automatically installed by Manifold and tightly integrated into Manifold it is easy to write high performance JavaScript.

A map window:

i_desktop_intro_map2.png

 

Maps can combine any visual component, such as drawings, labels and images.   The illustration above shows the drawing of water courses with alternate formatting, a bright green color, shown as a layer above an image layer brought in automatically through Internet from the Microsoft Bing image server.   The green version of the lines layer takes zero extra storage space, since we can make copies of drawings that take their data from the same table, with each such drawing being Styled differently, without increasing the amount of storage required.

 

Drawings in Manifold are simply pointers to a table that contains the actual data, together with some information in the drawing as to how that data should be presented.   Except for the few bytes of info on styling, each drawing requires no storage space.  All the data is stored in the table.

A styled image layer

i_desktop_intro_map3.png

 

We can apply Style on the fly to any drawing or image, even those dynamically brought in from web servers using protocols like WMS, TMS or others.   We can even style web server images from commercial web servers like Microsoft's Bing or Google Maps.  The illustration above shows Bing dynamically restyled to use different channel assignments than usual.   

 

Like drawings, images also do not store any data.  An image is just a pointer to the table where the actual data is stored, together with some information on how to present that data.  We can make copies of images that all point to the same table and style those various images as we like, without increasing the amount of storage space at all.

Another styled image:

i_desktop_intro_map4.png

 

 

The illustration above shows the same presentation using a forced palette and hill shading for the Bing image.

 

 

i_desktop_intro_map4a.png

 

 

Above, we see the same map zoomed further in.

Navigating Table Windows

icon_table.pngTable windows provide a view into tables using a classic row and column presentation: each row is a record and each column is a field in those records.  The intersection of a particular row and column, that is a specific field within a specific record, is a cell.   

 

i_table_parts_labeled.png

 

i_table_parts_cursor.png

See the Tables and Editing Tables topics for shortcuts for navigation and editing.

 

Double-clicking open a table in Manifold will show it in a table window, as seen above.   Tables show data in a classic grid presentation, with rows and columns.  Each row is one record in the table and the various columns show the values for fields in each table.    Manifold uses the words row and record as synonyms and the words column and field as synonyms as well.   If we say column handle we mean the same thing as field handle, for example, and if we say row handle we mean the same thing as record handle.    In addition, GIS people will often refer to fields as attributes.  

 

Click on a table's title bar or onto its tab when docked to move the focus to that table.  We can also click on a cell in the table to move the focus to that table and to make that cell the current cell.  A table window always has a current cell indicated by a dotted line box called the cursor.  The current cell's column handle and row handle will be darkened as well.  When a table window opens it is filled with records starting at the top of the table and the current cell will be the first column of the first row in the upper left hand corner.  

 

The current cell indicates the focus of any intended activity.    We can move the focus by clicking on any cell to make it the current cell or by using the keyboard arrow keys to move the current cell down, up, left and right with each click of an arrow key.    When we move the current cell up, down, left or right beyond the current view in the window, the window will scroll up, down, left or right to bring more rows or columns into view.

 

Pressing the keyboard Page Up and Page Down keys to move the current cell up and down one window's worth of records at each key click will move the focus faster and cause the window to scroll faster up and down.  

 

The Home key moves the current cell to the left-most column of the current record.  The End key moves the current cell to the right-most column of the current record.  tech_tina_sm.png

 

Tech Tip:  The Home key is particularly useful in tables because it will always move the cursor to the first field and also will scroll the table so that the current cell is in view.   For example, if we use Edit - Find to find a record to scroll to that record we press the Home key to quickly bring it into view.   Keep in mind that Manifold tables are not ordered so jumping back and forth using the Home key does not somehow confer order where there is not.   To get order use a query that temporarily displays the table in sorted order using ORDER BY.

 

Ctrl-Home moves the current cell to the first, topmost record of the table, still  within the current column.   Ctrl-End moves the current cell to the last, bottom record of the table, still within the current column.

 

If there are more columns than will fit into the window a horizontal scroll bar will appear.   We can use the horizontal scroll bar to pan the window's view into the table left and right.  Right-clicking on a column title opens a menu of commands that adjust the displayed widths of columns.

Small Tables / Big Tables

Table windows are useful for small tables.  Big tables are too big to browse interactively, so a table window will show only the first 50,000 records. Tables in a Manifold project can have tens or hundreds of billions of records when stored in external data stores.  Tables stored in a Manifold project stored in the .map project file are limited to a maximum of 2 billion records (2 x 10^9 records).

 

Even 50,000 records are too many records to look at one screen at a time.   At approximately 50 records per screen and a one-foot tall monitor display, that is 1000 feet or 300 meters worth of table to browse one screen at a time.  A table with two billion records is over 7600 miles or over 12000 km of screens to browse one screen at a time.    In comparison, the distance from New York to Beijing is only 6900 miles, or less than 11000 km.  

 

Another way to get a feel for the enormous size of a table with two billion records:  Suppose each display screen in a table window on our computer shows 50 records.  Suppose our full-time job is to look at 10 screens a minute (one every six seconds), for every minute of every work hour for eight hours per day.    If we work five days a week all year long, taking just one two-week vacation per year, it will take us over 33 years to scroll through that single table at that pace.  Is there any chance that in day 12 of month 3 of year 15 we would remember anything that we saw in a few hundred screens on some day years ago?  None.   That is why browsing tables with table windows is for small tables, and why Manifold provides tools like SQL queries to help us find data within and to get our heads around bigger tables.

Scroll Bars

If there are more records than will fit in view in the window a vertical scroll bar will appear.   See the Tables topic for quick shortcuts for navigating using scroll bars.

 

The vertical scroll bar is not a precise tool but is simply a relative aid to panning the window's view up and down through records near those that have been browsed.    If we are used to big data we know that scroll bars are basically useless in really big tables.  See the discussion in the Table Windows and Big Data essay.

 

The vertical and horizontal scroll bars pan the window's view into the table: they do not move the focus, that is, the dotted box outlining the current cell.   Right-click on a scroll bar to call up a context menu of useful choices.   The context menu is useful for horizontal scroll bars but of limited utility for vertical scroll bars.

 

For example, we could click on a cell to designate it as the current cell and then use the vertical scroll par to pan the window's view so the current cell is no longer in view.   To get it back into view we could either use the vertical scroll bar to pan the window's view back to where we can see the current cell, or we could just press the Home key or left arrow key to move the current cell to the first column of that current row and the window's view will automatically to bring that record into view.

Sorting Table Windowstech_angus_sm.png

Important:  As with any big DBMS, tables in Manifold are not ordered.   There is no guarantee at all in what order records will be displayed.   To display records in some particular order we can sort columns in a table window, or we can create a results table - for viewing purposes - from a query using ORDER BY.     If we are not familiar with big-time DBMS products like Oracle, SQL Server, DB2 or PostgreSQL, that Manifold tables are unordered may come as a surprise.  See the Tables topic and the ORDER BY topic for discussions why tables are not ordered.

 

Clicking a column handle will sort the table for all fetched records by that field.   Clicking the column handle again will sort the table in reverse order by that field.  Keep in mind we are not sorting data in the table itself: as with all high end database systems table data within Manifold is always stored in unsorted form.   We are only sorting the display of the table data in the table window.

 

eg_table_columns_sort01_01.png

 

The table window above shows the one thousand largest cities in the US.   Ctrl-clicking the state column handle sorts the table window by state name, in ascending order.    Ctrl-clicking the state column handle again would re-sort the table window by state in descending order.

 

eg_table_columns_sort01_01a.pngeg_table_columns_sort01_01aa.png

 

Sorting the table window by state means that all records displayed by the window with a state value of Alabama will appear before those from Alaska, which all will appear before those from Arizona and so on.   Within each state records are not ordered.    

 

If we would like them to be ordered within each state by some other field we can Shift-Ctrl-click on the column handle for that other field.  In the illustration above we have Shift-Ctrl-clicked on the city field to sub-sort cities within each state.   See the Tables topic for an example.

Editing Tables

Editing tables, we can:

 

 

tech_tina_sm.png

 

Index Required:  To be editable tables must have an index and they cannot be read-only.  If a table has a light gray background in all of the columns it is not editable.  Having an index is a good idea in any event because it makes work with tables faster and it enables facilities like interactive selection.

 

Add a new row to a table by double-clicking into the last row, marked with a * asterisk in the row handle, and adding info into cells.   Press Ctrl-Enter or click the row handle to commit the new row.

 

Manifold provides two options for editing the contents of cells in tables:

 

 

 

Any changes we make to a record within a table window that are shown with blue background color are temporary until we command the table window, with a Ctrl-Enter or a click on the row handle, to commit those changes by dispatching them to the table.  Cells shown with blue background color have changes that can be abandoned.  Cells with normal, white background that have been edited have had their changes already committed to the table.

Finding Records

Manifold provides many facilities for working with tables, such as queries written in SQL and dialogs or panes such as the Select pane and Transform pane.  As with most Windows applications, we could use the Edit - Find command to find desired text in table windows.   In addition, Manifold provides a more powerful Select pane.

 

 

i_findtext01_00.png

 

 

Consider a project showing a docked table as seen above.

 

 

i_findtext01_00a.png

 

 

We click on the Contents pane tab, and then we click on the Component pane's title and choose Select to switch to the Select pane.

 

 

i_findtext01_01.png

 

 

In the Select pane we choose the Text Contains template, and then we click into the Value box and we choose the Name field from the list of available fields.  We have entered text in the Filter box to make it easier to find the Text Contains template in the long list of available templates.  In the Search for box within single quotes we enter the text to find.  As we begin entering characters, from the very first character Manifold will automatically preview in blue preview color any records that are found that match whatever characters we have entered. 

 

 

i_findtext01_02.png

 

 

As we continuing entering characters Manifold will refine the preview.  Note that Manifold will dynamically preview in blue color all records that match the text we specify, updating the matches on the fly as we add characters.    In the two illustrations above when we keyboarded Cou there were three records in sight that matched in view and were previewed, but as we added the additional e character to make Coue only two records were previewed.  

 

 

i_findtext01_03.png

 

We can select the previewed records by pressing the Replace Selection action button.

 

 

i_findtext01_03a.png

 

 

To show only selected records, we choose View - Filters - Selected to filter the table to only showing selected records.

 

 

i_findtext01_04.png

 

 

Right away, the table shows only selected records.

Table Windows are Populated as Needed

Table windows will automatically be populated with as many records from the beginning of the table as will fit into the window.  Additional records will be fetched and displayed on the fly as we scroll down through the records using either keyboard clicks or panning the view downwards through the table using the vertical scroll bar.    Pressing the down arrow at the bottom of the vertical scroll bar control will scroll the table downwards continuously, growing the scroll bar display as more and more records are fetched on the fly into those being browsed by the window.

 

Table windows allow us to browse a table by looking at those relatively few records that will fit into a window and to edit the records we see.   Table windows allow us to see records, which we might locate using Edit-Find or other tools, along with those records that just happen to be immediately around them.  That can be useful when editing records or when setting up test cases in applications development, but manual peeks at relatively small portions of data are no replacement for effective use of SQL and other big data tools.   

tech_lars_sm.png

 

Tech Tip:  Even if we scroll through very many windows of records we will see only a small part of a table that has millions of records.   Given that most big data is unsorted, the records we might see in a window cannot be assumed to have any special relationship with each other based on their position in the table.  For that matter, almost always in databases the records shown are not ordered: to see them in some meaningful order we should use queries with ORDER BY and similar constructs.    See the discussion in the Table Windows and Big Data essay.

 

To find relationships within big data we should be using tools like SQL in preference to manual browsing with table windows.   See the Essay on that topic.

Printing

Manifold prints to hard copy or to PDF from layouts.   We can print a visual window such as a map, drawing or image window using File - Print Preview.   The File - Print Preview command pops open a pre-composed, temporary layout using default settings that we can immediately print to hard copy or PDF using File - Print.   If we like the temporary layout Print Preview creates we can save it as a permanent layout using Edit - Save as Layout.  

 

For greater control over print jobs such as creating more sophisticated compositions using multiple frames, we first create a layout, we customize the paper size and margins using File - Page Setup, we tinker with the layout to add frames, repositioning them, changing views within the frame and so on, and then we use File - Print to print the layout to PDF or to a hard copy printer.

Example:  Reposition Windows

In the example we open and reposition windows, using the two system tables as examples.   

 

 

eg_ui01_01.png

 

 

We launch Manifold and in the Project pane click on the + button to expand the System Data folder.

 

 

eg_ui01_02.png

 

 

That shows the two system tables that are a part of every Manifold project.   We double-click on the mfd_root table to open it.

 

 

eg_ui01_03.png

 

 

The table opens up as a docked table window.   The window's tab gives the name of the table.  The table's background is light gray color to indicate the fields are read-only, since the mfd_root table is maintained by the system.

 

In the Project pane we double-click on the mfd_meta table to open that table as well.

 

 

eg_ui01_04.png

 

 

The mfd_meta table opens as a docked table window, with its name in another tab next to the tab for the mfd_root table opened previously.   There are more fields than will fit horizontally, using default field widths,  into the small size of the desktop we are using for the sake of screen shots, so a horizontal scroll bar appears at the bottom of the docked table window.   We can scroll that to the right to see more fields.

 

By clicking on the tabs we can bring whatever table window is desired to the foreground for viewing.    We can Ctrl-click on a layer tab to automatically move that table to a split-screen presentation where it occupies the lower portion of the region for docked windows.

 

 

eg_ui01_05.png

 

 

When we Ctrl-click on the tab for the mfd_meta table it is automatically repositioned at the bottom part of the display region for docked windows.  Ctrl-clicking a tab will move that window back and forth between the upper portion of the display region or the lower portion of the display region.

 

We can drag the boundary between upper and lower regions to change the vertical space allotted for upper or lower regions.

 

 

eg_ui01_06.png

 

 

We will drag the boundary upwards to provide more vertical room for the lower region.

 

 

eg_ui01_07.png

 

 

So far we have been working with docked windows.   We can undock a window by Shift-clicking its tab.  We will undock the mfd_meta table by Shift-clicking  its tab.

 

 

eg_ui01_08.png

 

 

The resulting undocked window may be moved about to any location on our Microsoft Windows desktop.  It may be moved outside the Manifold desktop and even moved to span multiple monitors if our Windows desktop extends across multiple monitors.  It may be resized by dragging its corners, for example by dragging the upper-left corner.

 

 

eg_ui01_09.png

 

 

We can resize the window by dragging its lower-right corner to the right to make it wider, so that more of the fields in the table come into view.

 

 

eg_ui01_10.png

 

 

We can also  re-arrange the widths of fields in the table.  To do so we drag a column name divider to the left or right.  For example, we can make the mfd_id field narrower by dragging the column divider to the left.

 

 

eg_ui01_11.png

 

 

That changes the width of the column.   The mfd_meta table, which is a system table that lists all properties for various components, also automatically gains some more records to provide the Style information for various fields as JSON text.   For example, it lists the Size, that is the width, of the mfd_id field in the mfd_meta table as being 38 points wide, the width to which we have just set the width of the field by dragging the border.

 

 

eg_ui01_12.png

 

 

We can change the width of other columns as well.   At any time if we want to dock the window again we can Shift-click on the title bar.

 

 

eg_ui01_13.png

 

 

That will once more dock the window.

Example: Navigation

In this example we open a detailed satellite image of Paris, slightly over 9 GB in size, and then we use the mouse to zoom in and then to pan the view.

 

 

eg_uiviswin01_01.png

 

 

We open a project called Paris Image.  Within the Project pane we double-click onto the Paris image to open it.  Using right-click-and-drag we draw a zoom box with the right mouse button.

 

 

eg_uiviswin01_02.png

 

 

The window zooms into the region we drew with the box, with the river Seine winding through the center of the view.   Once again we draw a zoom box by using right-click-and-drag to zoom into the region around the Arc de Triomphe.

 

 

eg_uiviswin01_03.png

 

 

This zooms us closer, and once again we will right-click-and-drag to zoom even closer.   If we have a wheel mouse we could also use the wheel to zoom in and out.

 

 

eg_uiviswin01_04.png

 

 

We can now pan the scene by simply clicking-and-dragging.  For example, we can click-and-drag beginning at a spot near the right side of the window.

 

 

eg_uiviswin01_05.png

 

 

As we click-and-drag the display moves in the direction we drag.

 

 

eg_uiviswin01_06.png

 

 

When we release the mouse button to end the click-and-drag operation the scene will fill in.

 

Remember:

 

 

Once we get used to the speed and convenience of the above there is no way to do without it.

One more view...

If we zoom box to center on the Arc de Triomphe and then choose View - Zoom to Native we command Manifold to automatically zoom the display so that one pixel in the data corresponds to one pixel on the screen, that is, native resolution.  That zoom setting usually provides the best view of a given image's resolution.

 

 

eg_uiviswin01_07.png

 

 

In this case we can see that our 9 GB image of Paris is detailed enough so that we can see every vehicle in the center of Paris and even see individual people.   We can count the people in line to enter the Louvre.   The image above shows people on the circular plaza surrounding the arch, and people walking about the observation platform on the roof of the arch.

Notes

tech_yoshi_sm.pngTech tip: If a component such as a drawing opens and does not seem to be zoomed to fit, keep in mind that it might actually be zoomed to fit but we cannot see very small objects at the extremities of the view.   Vector drawings often contain very small objects that might not be easily seen at a zoom level that fits the entire data set into a window.    

 

For example, a drawing that shows US states and territories will include many small islands far from the mainland mass of US states.    If we open such a drawing we may be surprised to see the continental US is just a small part of the display with what seems to be lots of empty space around the continental US in the window.  But if we were to zoom into that empty space we might see US possessions far from the mainland that are islands and not easily visible when the data set is zoomed to fit.  

 

To take another example, drawings might contain errors that create spurious points located very far away from all the rest of the data.   A classic example is the case of errors when geocoding street addresses that result in a latitude/longitude of 0,0 instead of the correct geographic location.  

 

For example, suppose we have geocoded addresses of customers in Los Angeles and then when we open a drawing showing those geocoded addresses as points we are surprised to see a tiny clump of dots near the left edge of an otherwise empty window.   That unexpected display could be the result of a typical error, where just one dot, representing a single erroneously-coded address, has been placed at latitude zero and longitude zero, a location in the ocean off the coast of Africa where the Prime Meridian and the Equator intersect.  

 

The display was mostly empty because it had been automatically zoomed to fit to include both a tight knot of points within Los Angeles and also a single point half a world away off the coast of Africa.  Delete that spurious dot and then when we Zoom to Fit the drawing of geocoded addresses will fill the window within the expected extents of Los Angeles.

 

icon_message_red.pngMessage Icons - If we double-click open a component and a red message icon appears in the window's lower tab, we should choose View - Messages from the main menu to read the message.   Blank drawings showing a message icon usually indicate lack of a spatial index, which Manifold will offer to build for us.  Blank images showing a message icon usually indicate a need to build or update indexes or intermediate levels, which Manifold will offer to do for us.

 

Martian meteorites -  Pieces of Mars sometimes end up on Earth when an impact on Mars blasts pieces of Mars out into space with enough force that some pieces achieve escape velocity from Mars, travel through space and then are attracted by the Earth's gravitational field to fall to Earth as meteorites. Over 130 Martian meteorites have been found.  They can be verified as pieces of Mars by the distinctive proportions of microscopic amounts of Martian atmosphere trapped within the meteorite, by isotopic ratios and other characteristics unique to Mars.    Lunar meteorites are pieces of the Moon that have been blasted off by impacts and have also made their way to Earth.

 

How do we get that inner border effect in the Cameras map? - The slight hatching inwards from areas borders seen in the Cameras map screen shots uses an Inner Border effect in the Symbol dialog for area style.   We use the Symbol button for areas so the effect applies regardless of what we do with other style parameters, such as colors.   In the Symbol tab of the Symbol dialog (not illustrated) we set the Inner / outer offset value to 2, and then in the Inner Border tab (illustrated below) we check the Inner border box and set the stroke size of the Inner border to 2.  We then use a pattern of 0.1,1 for Dashes.  The result is a very short dash of 1/10th point, which the eye reads as a thin line perpendicular to the border, separated by 1 point of space.   Changing the color from full black to shades of very dark gray can soften the effect, as desired.   See the Style: Areas topic.  

 

eg_user_interface_inner_border_effect.png

 

See Also

Getting Started

 

How to Edit a Single File

 

Maps

 

Rotated Views

 

Tables

 

Filters

 

Drawings

 

Copy and Paste between Drawings

 

Images

 

Labels

 

Layouts

 

Tracker: Measurements

 

Selection

 

Queries

 

Editing Queries, Scripts and Comments

 

Layer Opacity

 

Project Pane

 

Contents Pane

 

Component Pane

 

Layers Pane

 

Record Pane

 

Select Pane

 

Style Pane

 

Transform Pane

 

Keyboard and Mouse Quick Reference

 

Table Windows and Big Data