Contents - Transform

The Transform panel of the Contents pane allows free-form manipulation of values in fields in tables. By manipulating the value of geom fields in tables used to drive drawings, the Transform panel also manipulates objects in drawings. Likewise, by manipulating the value of tile fields in tables used to drive images, the Transform panel also manipulates pixel values in images.   The Transform panel works when any component that is based on a table has the focus, such as tables, drawings, labels or images.

 

dlg_choose_transform_panel.png

 

Open the Transform panel in the Contents pane by pulling down the panel menu and choosing Transform.   A keyboard shortcut of Ctrl+6 also switches the Contents pane to the Transform panel.

 

This topic provides a basic introduction to the Transform panel.   For details on specific templates and extended discussion on selected topics, see the Transform topic.

 

dlg_contents_pane01_09.png

 

The Transform panel automatically configures for whichever type of component has the focus when the panel is open.  Click a different window and the panel automatically adjusts. 

 

 

Templates in the Transform panel will automatically adapt to the data type of the target field.  The Filter box can be used

 

The Transform panel has two modes of operation:

 

 

In both cases the alterations can be restricted to just selected records, leaving all other records unchanged.

 

To alter field values using a transform template:

 

  1. Open a table or drawing in a window.

  2. Click the Contents pane tab and then click the Transform panel open.

  3. In the upper box choose the target field to be altered.

  4. Click the Template tab.

  5. The templates pane will be populated with templates that can be used for that field.   Click the template desired.

  6. Combo boxes will appear for a source field (also called a value field)  to use as well as any additional fields or parameters used by the transform.   Fields and additional parameters can be picked from pull-down lists pre-loaded into the combo boxes, or literal values can be specified, or an SQL expression can be written into the combo box.

  7. Based on the source field and additional parameters specified, a preview in blue color will appear of what the template will do.

  8. Check the Restrict to selection box to apply the template or expression only to selected records.

  9. The Allow parallel execution box is checked by default.  Leave it checked.

  10. To commit the previewed changes to the target field, press the Update Field button, or, change the button to Add Component and press to save the changes into a new copy of the table or drawing, leaving the original unchanged.

 

To alter field values using an expressions:

 

  1. Open a table or drawing in a window.

  2. Click the Contents pane tab and then click the Transform panel open.

  3. In the upper box choose the target field to be altered.

  4. Click the Expression tab.  

  5. The cursor appears in a blank expression panel.  A list of fields in the table will appear, as well as a list of operators and functions that may be used in the expression.  Entering text into the filter box will reduce the list to only those items that include the text.

  6. Write the desired expression into the expression panel, double-clicking on fields or operators and functions as convenient to use the expression builder to automatically add them to the expression.

  7. As soon as enough of an expression is written to be evaluated as a valid SQL expression, a preview in blue color will appear of what the expression will do.

  8. Check the Restrict to selection box to apply the template or expression only to selected records.

  9. The Allow parallel execution box is checked by default.  Leave it checked.

  10. To commit the previewed changes to the target field, press the Update Field button, or, change the button to Add Component and press to save the changes into a new copy of the table or drawing, leaving the original unchanged.

 

Previews are great.  Once you see them you cannot do without.   For drawings, previews compute the operation for objects within the display to indicate what the Transform will do.   In most cases Manifold will compute the preview so fast that the display is instantaneous, but with bigger data it can take a few seconds to compute the preview.  When using compute-intensive templates or expressions with really big data that shows many objects in the display a preview can take significantly longer.

 

tech_ravi_sm.png

Tech Tip:   To eliminate delays when previewing huge data, zoom in to the drawing so only a few objects are in view before you click the template.  The preview will then be instantaneous.  Do not open a drawing with a billion objects in it, zoom to fit so that all are in view and then command an expression that takes hours compute.  Zoom in to just a few objects and the preview will still be fast, even if the entire job would take hours to do.   Remember, Manifold speed and parallelism are great but parallelism is not a magic wand: there are always cases of data that is so big and computations so demanding that even Manifold can take a long time to do the job.   That Manifold can do huge jobs in hours that take weeks in other packages is cool, but still, we should plan our time so those hours happen overnight and not when we are sitting at the monitor.

Template Tab

The Transform panel will open to the Template tab by default. The Template tab provides a list of pre-built selection commands, called templates., which are listed and discussed in the Transform Templates topic.   Clicking on a template will choose it and will open combo boxes that allow us to choose fields and to specify values we would like to use for that template.   

 

Combo boxes generally come pre-loaded with a pull down list of fields in the table.  By default boxes showing fields will contain the name of the first field in the table by alphabetical order.  This makes it easy to choose any field in the table to use with a template without having to keyboard the name of the field.  Combo boxes also usually allow us to manually enter a specific value, such as a field name or a number, or an SQL expression.

 

il_dlg_transform_template.png

 

Target Field

The target field into which the results of the template or expression will be placed.

Template / Expression Tabs

Choose between pre-built templates or writing a free-form SQL expression

Filter

Enter text to be matched, case not significant.   The list of templates will be reduced to show only those which match the text.    For example, entering comp will reduce the list to templates such as Compose Circle, Compose Point, and so on.

Templates

A list of templates that can be used with the context component and the data type of the given target field.  Template icons show the effect of their action:

 

i_icon_template_row.png

 A record icon indicates the template operates on one record.  Such templates offer both Update Field and Add Component actions.

 

i_icon_template_table.png

A table icon indicates the template operates on a table, adding or deleting records.  Such templates offer Add Component only.

Source

Field, value or expression: Many templates take a source, or value field from which they take the values upon which they operate.  If we want to operate on a field "in place" we choose the same field for the source field as for the target field.   For example, if we want to replace the contents of a geom field with buffers built upon whatever geometry was in that geom field, we would choose the same field name for both source and target.  

 

We so often would like to apply a transform to the same field as source and target that most transform templates will automatically specify the target field as the source field as well.  

Additional Fields, Values or Expressions

Some templates will open up additional combo boxes to allow us to enter additional fields or parameters the template needs for its work.  For example, the Buffer template opens up Distance and Tolerance boxes to allow those parameters to be specified.  In the pulldown menu we can normally choose from a list of fields, or Value to enter a literal value, or Expression to enter an SQL expression.

 

Units - Numeric parameters for distance values in transform templates show the coordinate system unit and allow changing it. The coordinate system is taken from the target field. If the coordinate system uses uneven local scales for X and Y, the parameter is set to use 'native unit' by default, and the parameter value is used without scaling. Otherwise, the parameter is set to use the unit specified in the coordinate system.   Click on the unit and then choose a unit in the Units submenu  to change it.  See the Example: Transform Template Units  topic for an illustrated example.

Transfer Options

The Options button appears when the action button is set to Add Component.  It allows us to specify Transform option such as the names of components that will be created and how fields will be transferred into the new components.

Restrict to Selection

If checked the transform template or expression will apply only to selected records.

Allow parallel execution

If checked (default) the template will allow execution using CPU parallelism in multiple threads with as many CPU cores as are available, providing faster performance.   Checking this box is equivalent to commanding THREADS SystemCpuCount() in SQL within templates.

Update Field or Add Component

Choose either setting by pulling down on the down arrow button.

 

  • Update Field - Apply changes to the target field.

 

  • Add Component - Create a new component that copies the context component with changes applied.

Edit Query

Click to open the Command Window pre-loaded with an SQL query which accomplishes what the template does given all chosen settings for target field, source field and any additional fields or parameters.

 

Expression Tab

Clicking the Expression tab in the Transform panel allows us to alter the contents of fields using  SQL expressions.  The panel provides assistance similar to the Query Builder in the Command Window for SQL.  The Expression tab provides a way to use the power of SQL expressions while being supported by the infrastructure of the Transform panel.

 

The Expression tab provides three sub-panels: an upper panel in which we can write expressions, a middle panel that shows fields in the table and a lower panel that shows operators and functions we can use.  Just as with the query builder in the Command window, double-clicking on a field or an operator or function will add it to the expression we are building.

 

il_dlg_transform_expression.png

 

Target Field

The target field into which the results of the template or expression will be placed.

Template / Expression Tabs

Choose between pre-built templates or writing a free-form SQL expression

Expression

Write an SQL expression into this pane, either manually or assisted by the expression builder by double-clicking onto fields or operators/functions in the other panes to add them to the expression.

Fields

A list of fields and their types from the table used by the component that is the subject of the Transform panel.

Filter

Enter text to be matched, case not significant.   The list of operators and functions will be reduced to show only those items which match the text.  For example, entering null reduces the list to only those items that have NULL in their names.

Operators and Functions

A list of operators and functions that may be used in the expression.

Options

The Options button appears when the action button is set to Add Component.  It allows us to specify Transform option such as the names of components that will be created and how fields will be transferred into the new components.

Restrict to Selection

If checked the transform template or expression will apply only to selected records.

Allow parallel execution

If checked (default) the template will allow execution using CPU parallelism in multiple threads with as many CPU cores as are available, providing faster performance.   Checking this box is equivalent to commanding THREADS SystemCpuCount() in SQL within templates.

Update Field or Add Component

Choose either setting by pulling down on the down arrow button.

 

  • Update Field - Apply changes to the target field.

  • Add Component - Create a new component that copies the context component with changes applied.

Edit Query

Click to open the Command Window pre-loaded with an SQL query which accomplishes what the expression does.   Although this option is primarily used with templates, using it with an expression allows use of the somewhat broader query builder facilities in the Command Window.

 

Choosing Fields, Values, or Expressions

The parameter boxes for templates in the Transform panel usually allow a variety of ways to choose the data they use.  They usually allow choice of a field, taking the value from whatever is in the specified field, specification of a literal Value, or entry of an SQL Expression.

 

In the illustrations we use a typical Transform template, the Replace Text, All template that appears when a text field is chosen as the target.

 

Choose a field

il_combo_box_list.png

Clicking on the icon for the Value box pulls down a menu offering a typical selection of choices.  It shows all of the text fields (those which can be used as a source for the text-oriented Replace Text, All template).  It also allows choice of Value or Expression.   We choose the Notes field that is in the table.

il_combo_box_field.png

Choosing the Notes field means that whatever is the text content in each record for the Notes field will be the source of the text upon which the search and replace action of the Replace Text, All template will operate.

 

Enter a literal Value

il_combo_box_list_value.png

The Replace Text, All template loads the Search for and Replace with boxes using sample text values.   If we were using a template that did not do that, but we wanted to specify a literal, specific text value to search for, we could choose Value in the pull down menu.  The small Ab icon indicates it is a text literal.  The icon for Value depends on the parameter type, for example, a small Ab icon indicating a text literal and a small 123 icon indicating a numeric literal value.

il_combo_box_string.png

In the Search for box we can then enter a literal value, in the illustration above, entering the text the subject year.   Because we have chosen Value for the box, the template knows to interpret whatever we enter as a literal value for the data type of the target field.  In this case, because the target field is an nvarchar text field, it knows to interpret what we enter as a literal text string, with no need for us to quote it in single ' quote characters SQL style, as we would if it were an SQL expression.

Enter an SQL Expression

il_combo_box_list_expression.png

We can specify the replacement string as a literal value, or we can choose Expression in the pull down menu to tell the template we will use an SQL expression.   

il_combo_box_expression.png

We enter an SQL expression which grabs the year from a Date field for the record.   Because we have told the template to expect an expression, whatever we enter will be interpreted as an SQL expression.

 

Yes, this is truly cool, a small but seriously intense detail in Manifold.  The above expression takes the contents of the Date field, extracts the year from the datetime field as a number and casts it into text form so it can be used within a text field.

 

The net effect of all the above is that within the text that is found in the Notes field, any text string like the subject year will be replaced by the year found in the Dates field.  So, if we have notes that contain text such as "This parcel was last surveyed in the subject year," if the Date field for that record contains a date in the year 2016, the text will be changed to "This parcel was last surveyed in 2016."

 

Update Field / Add Component

The button at the bottom of the Transform panel is called the action button.   It tells the system what to do with the results of a transform template or expression.  To commit those changes we choose the action desired for the button, either Update Field or Add Component, and then press the action button to command the action.

 

The Update Field choice makes changes to the table "in place."   Instead of making changes to the original table we can switch the action button to Add Component to write the changes the Transform panel would make to a new component.  This will create a new component that incorporates whatever changes are made by the template or expression.   The original table is left unchanged.

 

We use the pull-down menu on the action button to witch from the default Update Field action to Add Component.

 

il_dlg_transform_action01_01.png

 

We can then click on Add Component to save changes to a new component, leaving the original data unmodified.

 

il_dlg_transform_action01_02.png

With Add Component commanded, if the Transform panel was applied to a table a new table with modified records will be created in the Project pane.   If the Transform was applied to a drawing, Add Component will create two new components, a new table and a drawing for that table, in the Project pane.

 

Some templates, primarily for use with drawings, such as the Decompose to Coordinates template for use with geoms in drawings, do not offer an Update Field option but only offer an Add Component option.    

Transform Options

The Options button appears to provide Transform Options when the action button is set to Add Component, as some transform templates allow.  Templates which do not allow changing the action button from Update Field  to Add Component do not use Transform options.    Transform options control how fields resulting from the transform operation, which can involve more than one drawing or table, are brought into the resulting new components.  

 

A classic example of using Transform options is with overlay templates.

 

il_overlay_process.png

 

Transform options allow specifying:

 

 

The Transform Options topic for details.

Live Previews

Yet another cool deal: When a template is selected or an expression is entered, as soon as enough of the expression is entered to create a valid SQL expression the Transform panel will show a preview of what will be done using blue preview color.    What is displayed is just a preview that will be abandoned if some other template is chosen, a different expression written or the focus switched to some other component.   The specified template or expression will only take effect if the action button is pressed to Update Field or to Add Component.

 

The preview is shown as soon as a Template has been chosen or as soon as enough of an Expression has been written to be evaluated.  

 

 

 

 

If a preview does not appear for a transform applied to an image, we should zoom further into the image to reduce the amount of data that must be computed for a preview.

 

Important: The Transform panel can show previews for its work in a drawing if there is at least one object in the drawing.   Drawings can not host previews if they are empty, that is, where there are no records in the associated table or where the values for all records in the geom field the drawing uses are NULL values.  That is true even if the preview would involve filling the NULL values with non-NULL geom values.

Choosing the Same Field for Target and Source

Choosing the same field for both target field and source field tells the transform to take whatever is in the field, apply the desired template or expression and then put the result back into that same field.  We are transforming the field in place.

 

Suppose we have a drawing that shows objects in the Geom field of a table:

il_same_field1.png

 

We launch the Transform panel and choose Geom as the target field.   

 

il_same_field3.png

 

We then click on the Buffer template and choose Geom also as the source field, using a Distance of 10.

 

il_same_field2.png

 

Right away, the panel shows a preview in blue preview color of what will happen if we click the Update Field button to apply the transform.

 

While it is often very convenient to transform fields in place we should keep in mind such changes are permanent with no undo.   An alternative way of making such changes is to make them first to a temporary, scratch pad field as shown in the Example: Two Drawings from the Same Table topic.

Fields, Expressions or Literals in Combo Boxes

Transforms that provide a combo box into which a field may be entered will also usually allow us to enter either a literal, such as number or a string, or an expression, such as a SQL expression.   

 

 

Keep in mind when entering an SQL expression that when entering an expression we are speaking SQL: any literal values used in that expression must use SQL style for specifying literals for the desired data type.  For example:

 

 

Given that a very simple SQL expression can contain nothing but a literal value, that provides two ways to accomplish the same thing, either using a literal Value or using an SQL Expression.

 

dlg_transform_value_or_expression01.png

 

Consider the illustration above, where we use the Replace Text, All template to replace all occurrences of Netherlands with The Netherlands.   The Replace with box has been set to use a Value, as we can see from the Ab "value" icon it shows.   Since the template has been told to use a value there is no need to use quote characters around The Netherlands.  

 

dlg_transform_value_or_expression02.png

Another way to do the same thing is to tell the Replace with box to use an SQL expression by choosing Expression in the pull down menu.   We can then enter the very short and simple SQL expression of:

 

'The Netherlands'

 

We might think of SQL expressions as using SQL statements and SQL functions, but they can also consist of nothing more than simple literal strings within quotes, like the above.  The f 'formula' icon tells us we are entering an expression.

 

While it would be a bit weird to use SQL expressions for simple search and replace when we could just use the Value without having to bother to use quote characters, there are times when it is convenient to use SQL expressions even for something as simple as search and replace.

 

dlg_transform_value_or_expression03.png

 

For example, suppose our table with the Country field originated somewhere on the web where there are many bits of HTML trash littering the contents, such as the use of   HTML constructions (which means "non-breaking space character") that we would prefer to replace with sensible space characters.

 

We can enter a space character into the Replace with box as a value easily enough, but the problem with space characters is that they are not visible when we keyboard them.  It is therefore very easy to forget if the space character has been entered and, if so, to see if it hasn't accidentally been entered twice.   An easy solution for that is to use an SQL expression that quotes the Unicode \u0020 escaped way of saying "space character."    This is also a convenient way of searching and replacing for other difficult characters, such as line feeds, newlines and carriage returns.

Automatically Creating a Query - The Edit Query Button

At any time we can see the SQL used by the Transform panel to implement the template or expression commanded.   To do so we press the Edit Query button and a Command Window will open up that is loaded with an automatically generated SQL query that implements the template or expression in use.

 

This allows us to modify the query as desired using the full facilities of the Command Window, to save the query for later use or simply to learn more about how SQL can be used.

 

Note that queries created by the Transform panel are automatically created within the Command Window, but they are a different way of creating queries automatically than the mechanism described in the Example: Automatically Generating CREATE Queries topic.

Dynamic Updating

The Transform panel dynamically updates itself given any changes in the table's schema.  For example, if while a Transform panel is open we choose Edit - Schema and then add a new field to the table the available fields in the Expression tab's expression builder will be updated with the new field.   If the Restrict to selection box is checked, we can dynamically select or unselect items in the subject window and the Transform template will be dynamically applied.   For an example of that effect, see the Labels topic.

Read Only Components

If the table's schema is altered to remove all writable fields the Transform panel will automatically offer only Add Component on the action button, without offering Update Field,  since it cannot update a read only table.  

Simultaneous Use of Other Facilities

When we have the focus on an open table window and we open the Transform panel within the Contents pane, that Transform panel applies to the window that has the focus.  We can open other windows and do other work with Manifold, going back and forth between the other work and the Transform panel.    

 

Notes

Zoom to Fit - If we open a drawing and then open the Transform panel and apply a template, if we do not see anything in the drawing it could be that the results of the preview are not in view.  We can do a View - Zoom to Fit command to make sure that we can see all objects in the drawing in the window we are using.

 

Why ever uncheck Allow parallel execution?  -  It does not always make sense to utilize all CPU cores.   There are several classic examples why we might want to uncheck this box:

 

 

Why do some templates only allow an Add Component Option?   Only templates which result in changes within the same record, without adding or removing any records, can offer an Update Field option.   If a template must create additional records or delete some records it can only be implemented using an Add Component option.   The new component that is created can have a different structure or different number of records than the context component.

 

A good example is considering the different operation of the Convert to Point template and the Decompose to Coordinates template.  

eg_two_drawings01_31.png

 

Looking at the previews both seem to do the same thing, creating a point object at each coordinate which defines an object.  The illustration at right would be the preview for either template.  But the Convert to Point template allows a choice of either Update Field or Add Component, while the Decompose to Coordinates template allows only the Add Component action.  Why?

 

il_trans_multipoints.png

The answer is that Convert to Points creates multipoint objects, where a single geom in a single record encodes all of the points created for whatever was the original object in that record.   In the example drawing the table started with seven records, one record for each of seven objects.  Three of the records contained geom values encoding areas, two records contained geom values for lines and two records contained geom values for points.   

 

The Convert to Points template replaced the seven geom values in those seven records with seven altered geom values which encode multipoint objects.  The multipoint geom for the triangle shown above with red points contains a multipoint that encodes three points in one geom.  The record for the line below it has a geom with a multipoint that contains the five points at the coordinates of the line, and so on.   The Convert to Points template can have an Update Field option because it simply replaces the geom field in each record with an modified geom field.   It does not add or delete records or otherwise change the table's structure.

 

In contrast, the Decompose to Coordinates template takes a table of seven records and builds a new table that has 23 records, with each record containing a geom that encodes a single point.  There is no option to simply Update Field because the template must do more work than simply update an existing field in existing records.  It must create a new table, so the only option is to have an Add Component choice.

 

Notes

tech_ravi_sm.png

Tech Tip: A totally cool thing about the Transform panel is that we can write SQL expressions into the combo boxes that appear for various templates.   Most combo boxes will allow us to choose a field from a pull down list of fields of the appropriate type.  We can also enter a fixed value like a number or a string.   But we can also enter an SQL expression using the table's fields, for example, like the  COALESCE(Status, '') expression used in the source field combo box in the Concatenate template listings for text fields.   Another example is in the Replace Text, All template listing for text fields, using a CAST expression.  This allows us to combine the convenience of pre-built templates together with the ability to express exactly what we want in a line of SQL.

 

See the various examples in the Transform Templates topics.

 

Units of measure - Some templates use combo boxes within which we can specify a distance or other value using units of measure.  The unit of measure used will be indicated at the side of the box, and can be changed to whatever unit is desired.

See Also

Labels

 

Contents Pane

 

Transform

 

Transform Options

 

Transform Templates

 

Transform Templates - Drawings

 

Transform Templates - Images

 

Transform Templates - Binary

 

Transform Templates - Boolean

 

Transform Templates - Datetime

 

Transform Templates - Geom

 

Transform Templates - Text

 

Transform: Center and Centroids

 

Transform: Escape Templates

 

Transform: Overlay

 

Transform: Overlay Topology

 

Transform: Voronoi Diagrams

 

Example: Two Drawings from the Same Table - Take a table with a geom field that is visualized by a drawing.  Add a second geom field to the table and create an rtree index on that field so it can be visualized by a drawing.   Copy the first drawing, paste it and adjust the pasted copy so it uses the second geom field. Demonstrate how to use the Transform panel to show "live" modifications in the second drawing compared to the first drawing.

 

Example: Create a Drawing from a Geocoded Table - A geocoded table has records with a latitude and longitude for each record.   This example starts with a table containing a list of cities with a latitude and longitude field for the location of each city.   We create a geom from the latitude and longitude fields using a template in the Transform panel and then we create a drawing that shows the cities as points.  This example shows all the infrastructure steps involved.

 

Example: Automatically Generating CREATE Queries - How to use the Command window to automatically generate SQL in the form of CREATE queries that create a desired component.

 

Example: Transform Elevation Image to Flatten Bathymetry to Zero - Using the Transform panel  with an image, which contains a single data channel for terrain elevation data for land together bathymetry data for oceans, we use the Expression tab of the Transform panel to reset all pixel values less than zero to zero.   This takes all below-zero elevations and sets them to zero, in effect removing bathymetry effects so that ocean areas are represented with zero elevation.  

 

Example: Zoom In to See Transform Previews for Big Images - A short example showing how previews for the Transform panel will appear in large images only when zoomed in far enough so computation of the preview does not cause objectionable delays.

 

Example: Parallel Speed Increase in an Image Transform - A short example illustrating how checking the Allow parallel execution option (on by default) increases speed by a factor of four in a simple use of the Transform panel to modify an image.

 

Example: Transform Template Units - Templates in  the Transform panel often include parameter boxes using units of measure.  This example uses the Buffer drawing template to show how to change units of measure quickly to whatever units are desired.

 

Example: Copy one Column into Another Column with Transform - How to use the Transform panel to copy the contents of one column in a table into another column, but only for selected records.  Uses the Products table from the Nwind example data set.  

 

Example: Transform Field Values using an Expression in the Transform Panel - How the Expressions tab of the Transform panel may be used to change the values of fields.  

 

Example: Overlay Contained -  A frequent use of overlays is to sum the values of many points that fall within an area and to transfer that sum to a new field for an area.  In this example we take a drawing that has cities in the US with a population value for each city.  We use Overlay Contained  to sum the population of each city within a state and to transfer that sum to a total population for the state.

 

Example: Overlay Containing - One of the most common uses of overlays is to transfer fields from areas to points that are contained in those areas.    Tasks such as transferring a census block group number or zip code number from a drawing of areas to points that fall within each area are extremely common.   In this example we transfer the name of a French region  to the points that represent cities which fall within each region.

 

Example: Overlay Topology Intersect - In this example we use the Overlay Topology, Intersect template in the Transform panel to trim a drawing of points so that all points which do not fall within areas in a second drawing are deleted.   The drawing of points we trim will become the US cities drawing that is used in the Example: Overlay Contained topic.

 

Example: Transfer Options and Merge Areas - Using the Merge Areas Transform panel template, an exploration of the difference between using Copy and Sum for transfer options.

 

Example: Union Areas - Combine multiple area objects into a single area.   A drawing of French regions shows some regions as more than one area.  We would like each region to be one area so the table of regions has one record per region.

 

SQL Example: Learning to Union Areas in SQL from Edit Query - We learn how to write an SQL query that does a custom Union Areas operation by cutting and pasting from what the Edit Query button automatically generates.

 

Example: Construct JSON String using Select and Transform - Use the Select and Transform panels to manually construct a JSON string using values from other fields in a table. Shows how we can manipulate text to build desired contents in a field.

 

Example: Edit a Drawing with Transform Templates - In this example we open a drawing and edit objects in the drawing using Transform panel templates.  Includes examples of using the Add Component button and also the Edit Query button.

 

Example: Use a Transform Expression to Create Buffers in a Drawing - Use the Expression tab of the Transform panel to create three different sizes of buffers for different lines in a drawing and then automatically create a query which does the same thing.  Includes examples of using the Add Component button and also the Edit Query button.

 

Example: Clip Areas with a Transform Expression - Use the Expression tab of the Transform pane to clip areas in a drawing to fit within horizontal bounds.   Includes examples of using the Add Component button and also the Edit Query button.

 

Example: Smooth Lines with a Transform Expression - Use the Expression tab of the Transform panel to make lines smoother in a drawing so that longer lines are smoothed more.  Includes examples of using the Edit Query button to show how different queries are created automatically depending on if we want to update a field or to add a new component.

 

Example: Transform Templates, Expressions and Queries - We learn to use a function by clicking on a template in the Transform panel, seeing what it does in a preview, looking at the query Manifold creates and then trying out the function in the Expression tab.