LizardTech.com

Archive for the ‘Usage Tips & Tricks’ Category

Floating licenses in GeoExpress

Tuesday, November 4th, 2008

We added floating licenses to GeoExpress a couple of versions ago to give customers more flexibility, but many customers aren’t aware of what floating licenses are or how they work. This Q & A addresses the most common questions we get about floating licenses.

What is a floating license?

A floating license is a license that moves around among the members of your organization as needed. It’s a means of enabling a user on a networked computer to lease or “check out” a GeoExpress license for the period of time they are working. When they quit GeoExpress, the license is returned to the license server and becomes available for another user.

What’s the benefit of using floating licenses? I need to tell my boss what the benefit would be.

Try this on the boss: “Using floating licenses makes for very efficient use of our organization’s software license budget.” Rather than purchase licenses for every single person in your outfit that might possibly need to use GeoExpress at some point, you can buy licenses for just the number of people who are likely to need to use the software concurrently. If that weren’t enough, floating licenses also take a load off your IT administrator, who no longer has to go to each computer to run GeoExpress and write down a locking code. With floating licenses the licenses for all your organization’s copies of GeoExpress can be managed centrally.

Which editions of GeoExpress can we use a floating license with?

Floating licenses can be used with GeoExpress Tools, GeoExpress Standard and GeoExpress Unlimited editions.

GeoExpress Remote Edition is one of those, right?

No. GeoExpress Remote Edition is its own edition and floating licenses don’t work with it. If you’ve got GeoExpress Remote Edition you‘ll need a remote license. Contact your LizardTech representative to get one.

So, how does a floating license work? How do I check one out?

When you run GeoExpress, the software “looks for” a license on the network and if one is available, you’re off to the races. You don’t have to DO anything. It all happens automatically and invisibly. In fact, users at an unfamiliar workstation running GeoExpress with a floating license checked out on the network would not necessarily know they weren’t using a local license. Users generally won’t even have to think about how their software is licensed.

You said “if one is available”. Why would a license NOT be available, and what happens then?

The license server only distributes as many licenses as your organization has purchased. After all your licenses have been assigned, the license server waits for a license to be checked back in before it allows any more to be checked out. If this happens, the next user that runs GeoExpress gets a message alerting them that all the licenses are in use, and they’ll have to wait for the next available license.

What’s a license server? It sounds expensive.

Generally speaking, any computer on your network can be a license server. You just have to install the license server software on it. The license server software costs you nothing. It’s provided for you on the GeoExpress installation disk.

As a user just trying to run GeoExpress, do I have to know which computer on the network is a license server?

No. GeoExpress automatically searches out the nearest license server on your network. However, if you wish you can tell the software where on the network you would prefer it to look by specifying a license server.

Can I also specify that I’d prefer a NITF-enabled license if one is available?

Did we pay you to ask that? Why, yes. Yes, you can.

Where do I do all this specifying about licenses and license servers?

Choose Floating Licenses from the Options menu on GeoExpress’ menu bar. A dialog box appears where you can specify a license server and whether you’d prefer a NITF license.  

With floating licenses, does GeoExpress still get installed on a local computer?

Yes. GeoExpress is still installed on individual workstations, but the workstations do not have individual licenses. The license server stores all the licenses and keeps track of them.

 

Calling the SDK from C#

Tuesday, October 14th, 2008

Because we support multiple platforms (Windows, Solaris, Linux, Mac), our Decode SDK is written in C++.  Some years ago, our C++ APIs used to regularly lead to the question, “do you support Java?”.  The answer was always sorry, no, we’re not a Java shop and we don’t have any Java bindings… But we’ve always provided a relatively simple C API which we claimed could be wrapped using JNI, and for the most part that made people happy.

For the past year or so, though, all the Java requests seem to have disappeared, only to be replaced by the question, “do you support .NET?”  This usually means “do you have any C# bindings?”, although we do get the occasional VB.NET request.  Our response has been sorry, no, we’re not a C# shop and we don’t have any .NET bindings… But, again, we’ve told people that “it ought to be fairly easy to call out to our C API using P/Invoke, .NET’s Interop functionality”.

Well, recently some of the engineers here at LizardTech HQ have started programming in C# for reals, and so now we actually have just enough in-house expertise on the question to be able to provide some additional help on this one.  While the current DSDK release doesn’t provide any C# bindings, we have put together a very simple example app that shows how to use Interop to access the C API.

The code is, at heart, remarkably simple.  First, you declare your C functions so they can be accessed from within your C# class, like so:

      [DllImport("lti_dsdk_cdll.dll")] 
      static extern int ltic_openMrSIDImageFile(out 
            IntPtr image, string fileName); 

      [DllImport("lti_dsdk_cdll.dll")] 
      static extern uint ltic_getWidth(IntPtr image);

Then, you close your eyes, tap your ruby slippers together three times, and innocently call the functions just like they were real functions:

      // this is essentially our void* pointer 
      IntPtr image = IntPtr.Zero; 
      string infile = "..."; 

      sts = ltic_openMrSIDImageFile(out image, infile); 
      ... 
      uint width = ltic_getWidth(image); 
      ...

You can download the full example from here.

Yes, we know, it’d be nice to provide interop support for the C++ classes so as to give access to the whole SDK… but quite frankly, we’re not sure the market demand is really there yet.  At the very least, though, we’ll try to include interop support for the C API in the next release of the SDK.

Keep those cards and letters coming.

-mpg

Administering Express Server on Vista

Wednesday, May 28th, 2008

Vista users who are also administrators may have noticed that when they select the “Administer Express Server…” option from the “Tools” menu in GeoExpress 7, nothing happens. We intend to fix this in a future release, but in the meantime there are several workarounds that we don’t recommend and one that we do.

You could set GeoExpress to run as an administrator or set it to run in “XP Compatibility Mode”. However, we recommend that you let the Vista operating system fix the problem itself. Here’s how: 

When you attempt to use the “Administer Express Server…” option and it doesn’t work:

  1. Close GeoExpress. A dialog appears, shown below, indicating that Vista noticed a “compatibility” issue and will make a change accordingly.
  2. Compatibility issue

  3. Click Close

The next time you start GeoExpress and choose Administer Express Server… from the Tools menu, all should be well.

Exploring the new features in GeoExpress 7 – Part 2 : Tiling out to GeoTIFF

Monday, April 21st, 2008

Last time, we talked about despeckling. Another popular workflow with GeoExpress 7 uses two new features: output tiling and decoding.

Lots of customers have massive SID images that they need to chop up into smaller tiles and decode out to TIFF. In prior versions of GeoExpress, you could use a series of command line tools to do this, but of course this was unwieldy.

Here’s how easy it is to do in GeoExpress 7:

  1. Add the file(s) you want to work with to the Images tab of the job list.
  2. Select Image Crop… from the Tools menu. The Image Crop dialog appears.
  3. In the Output Tiling section, choose how many rows and columns you want to divide your image into and click OK.
  4. Now, just choose “GeoTIFF” as your output format (use the drop-down menu on the main interface) and click Encode Selected Images.

In no time, you’ll have a series of GeoTIFF tiles created from your original SID image.

Exploring the new features in GeoExpress 7 – Pt. 1: Despeckling

Thursday, April 10th, 2008

Most of you are probably already using GeoExpress 7. We’ve received some rave reviews from some of you about the new features we added, so we thought this might be a good time to introduce and explain how to use some of the great new tools in GeoExpress 7.

If you’ve ever received imagery from the USDA NAIP program, particularly MrSID Generation 2 (MG2) images from previous years, you’ll have noticed that many of the images have black collars around them. If you load these images into your GIS application and drop out these black collars, you’ll see a lot of ugly “speckling.”

These speckling artifacts happen because compressing images to MrSID at high compression ratios requires approximating colors. In other words, “black” becomes “almost black.” While the human eye doesn’t ordinarily notice the difference, this can make it difficult, not to mention ugly, to mosaic images together. Speckling happens with other background colors, too. Below you can see speckling around the edge of a mosaic with a white background.
mosaicked image before despeckling

Not to fear, though. GeoExpress 7 has new “despeckling” tools to clean these images up.

Start GeoExpress, and add your SID files to the “Despeckle” tab of the job list. In most cases, you won’t even need to adjust any options (however, note that despeckling is not available for MG2, so if you want to despeckle your MG2 imagery you’ll need to encode it to MG3 or JP2). Just click the “Despeckle Selected Images” button below the job list and GeoExpress will clean up your images for you. Here’s the result:
Image after despeckling

Next time, we’ll talk about “tiling out” images as TIFFs.

Images courtesy of MapMart.