The Laue Data Module (LDM) and Related Developments

LDM icon

Version number: 1.8

John W. Campbell, CCLRC Daresbury Laboratory

CONTENTS

CHAPTER 1: THE LAUE DATA MODULE (LDM)

1.1  INTRODUCTION
1.2  Scope of the Laue Data Module
1.3  LDM Keyworded Data Files
1.4  Reading and Writing LDM Data
1.5  LDM Routines
1.6  Coordinate Systems
1.7  Laue Reflection List (LRL)
1.8  LDM Related Functions
1.9  The LDM Parameters
1.10 Extended LDM Parameter Sets
1.11 References

CHAPTER 2: LAUE DATA MODULE (LDM) ROUTINES

2.1  INTRODUCTION
2.2  Read, Parse and Write LDM Data
     2.2.1    Introduction
     2.2.2    Read Line of Data from a File - LDM_READLINE
     2.2.3    Handle Indirect File References in a String - LDM_READSTR
     2.2.4    Parse Line Containing LDM Data - LDM_PARSE
     2.2.5    Parse LDM Data with Additional Checking - LDM_CHK_PARSE
     2.2.6    Parse and LDM Item - LDM_PARSEITEM
     2.2.7    Write LDM Parameters Data - LDM_WRITE
2.3  Setting LDM Parameter Values
     2.3.1    Introduction
     2.3.2    General Routine to Set LDM Parameter Value - LDM_SET
     2.3.3    Reset Default LDM Parameter Value(s) - LDM_RESET
     2.3.4    Individual Routines to Set LDM Parameter Values - LDM_SET_...
2.4  Getting LDM Parameter Values
     2.4.1    Introduction
     2.4.2    General Routine to Get LDM Parameter Value - LDM_GET
     2.4.3    Individual Routines to Get LDM Parameter Values - LDM_GET_...
     2.4.4    Routine to Get All SPD... Parameter Values - LDM_SPDXY
2.5  Symmetry Handling Routines
     2.5.1    Introduction
     2.5.2    Get Full Symmetry Data - LDM_GET_SYMM
     2.5.3    Get Basic Space Group Details - LDM_GET_SPGRP
     2.5.4    Get Number of Symmetry Operators - LDM_GET_NSYM
     2.5.5    Check for Systematic Absence - LDM_SYSABS
     2.5.6    Get Systematic Absence Based on H, K - LDM_SYSAHK
     2.5.7    List Symmetry Data - LDM_SYMM_LIST
     2.5.8    Prepare to Convert Indices to Assymetric Unit - LDM_AUSET
     2.5.9    Write symmetry to MTZ file - LDM_LWSYMM
     2.5.10   Write symmetry to LIRL - LDM_LIRLSYMM
2.6  Convenience and Supplementary LDM Routines
     2.6.1    Introduction
     2.6.2    Interpret Axis Order String - LDM_AXORD
     2.6.3    Millimetre to Raster Conversion Factors - LDM_MMRAST
     2.6.4    Get Image File Name From Definition or Template - LDM_FILENAME
     2.6.5    Find LDM Limit SPD Polynomial Coefficients - LDM_SPDMAX
     2.6.6    Find LDM Number of Packs - LDM_PKMAX
     2.6.7    Find LDM Number of Plates per Pack - LDM_PLMAX
     2.6.8    Decode Character String into a Number - LDM_INTFP
2.7  Monitor LDM Parameter Value Changes
     2.7.1    Introduction
     2.7.2    Reset Parameter Change Monitoring Flags - LDM_CH_RESET
     2.7.3    Check for Parameter Value Changes - LDM_ANY_CH
2.8  Make Distortion Corrections to Coordinates
     2.8.1    Introduction
     2.8.2    Make Distortion Corrections to Ideal Coordinates - LDM_CORR
2.9  Save and Restore Refineable Parameter Values
     2.9.1    Introduction
     2.9.2    Save Refineable Parameters - LDM_SAVERP
     2.9.3    Restore Saved Refineable Parameters - LDM_RESTRP
2.10 Special Routines for Use with Laue Reflection Lists
     2.10.1   Introduction
     2.10.2   Set LRL Generation Flags - LDM_LRL_CALC
     2.10.3   See if LRL Needs to be Regenerated - LDM_CHK_GEN
2.11 Special Reciprocal Lattice to Detector Conversions
     2.11.1   Introduction
     2.11.2   Convert Reciprocal Lattice to Detector Coordinates - LDM_RTOD
     2.11.3   Double Precision Version of LDM_RTOD - LDM_RTOD_DP
     2.11.4   Convert Detector to Reciprocal Lattice Coordinates - LDM_DTOR
     2.11.5   Convert Detector to 'Q' Axis Coordinates - LDM_DTOQAX
2.12 Handle Extended LDM Data
     2.12.1   Introduction
     2.12.2   Define a New Integer Parameter - LDM_NEWINT
     2.12.3   Define a New Floating Point Parameter - LDM_NEWFLP
     2.12.4   Define a New String Parameter - LDM_NEWSTR
     2.12.5   Get Index to KDM Keyword Set - LDM_KDX

CHAPTER 3: LAUE REFLECTION LIST (LRL) ROUTINES

3.1  INTRODUCTION
3.2  Generating the Laue Reflection List
     3.2.1    Introduction
     3.2.2    Generate Laue Reflection List (High Level) - LRL_GEN
     3.2.3    Generate Laue Reflection List (Low Level) - LRL_GNR
     3.2.4    Calculate Orientation Matrix - LDM_MK_ORIENT
     3.2.5    Calculate the Master 'A' Matrix - LRL_A_CALC
     3.2.6    Find and Mark Spatial Overlaps - LRL_OVLP
     3.2.7    Find All Spatial Overlaps - LRL_OVALL
3.3  Sort the Laue Reflection List
     3.3.1    Introduction
     3.3.2    Sort Reflections List - LRL_SORT
3.4  Calculate an Individual Spot Position
     3.4.1    Introduction
     3.4.2    Calculate Individual Reflection Position - LRL_CALC_POS
3.5  Get Global Laue Reflection List Data Items
     3.5.1    Introduction
     3.5.2    Return the Number of Spots - LRL_NUMSPOTS
     3.5.3    Get Spot Counts - LRL_COUNTS
     3.5.4    Return Status of Laue Reflection List - LRL_STATUS
     3.5.5    Get Corrected Centre Position - LRL_GET_XYCEN
     3.5.6    Number of Reflection Tries - LRL_TRIES
     3.5.7    Get Pack and Plate Number - LRL_GET_PLATE
     3.5.8    Return the Nodal Index Limit - LRL_NODMAX
3.6  Get Individual Spot Data from Laue Reflection List
     3.6.1    Introduction
     3.6.2    Get Spot Details - LRL_GET
     3.6.3    Get Harmonics Data for a Spot - LRL_GET_HARM
     3.6.4    Return Coordinates for a Spot - LRL_GET_XFYFD
     3.6.5    Return Integrated Intensity of a Spot - LRL_GET_INT
     3.6.6    Get Nodal Index for a Spot - LRL_GET_NIDX
     3.6.7    Return Spatial Overlaps Flags for a Spot - LRL_GET_OVLP
     3.6.8    Return No. of Overload Pixels for a Spot - LRL_GET_OVPIX
3.7  Set Global Laue Reflection List Data Items
     3.7.1    Introduction
     3.7.2    Clear Intensity Data - LRL_CLR_ALL
     3.7.3    Set the 'Integration Done' Flag - LRL_SET_IDONE
3.8  Set Individual Spot Data in Laue Reflection List
     3.8.1    Introduction
     3.8.2    Store Integrated Intensity - LRL_SET_INT
     3.8.3    Clear Intensity Data for a Spot - LRL_CLR_INT
     3.8.4    Set Spatially Overlapped Flag for a Spot - LRL_SET_SPOV
     3.8.5    Set 'Too Close' Flag for a Spot - LRL_SET_CLOS
     3.8.6    Set No. of Overload Pixels for a Spot - LRL_SET_OVPIX
     3.8.7    Set Non-spatially Overlapped Nodal Flag - LRL_SET_OKNOD
3.9  Interface for XDL_VIEW Laue Simulations
     3.9.1    Introduction
     3.9.2    Interface to X-windows Laue Simulation - LRL_XDLSIM
     3.9.3    Interface to X-windows Gnomonic Simulation - LRL_XDLGNM
3.10 Re-assign Spatial Overlaps and Multiplicities
     3.10.1   Introduction
     3.10.2   Reassigning spatial overlaps - LRL_REASSIGN
     3.10.3   Get Re-assigned Spot Flags - LRL_GET_REASS
3.11 Determine Spatial Overlap Between Two Spots
     3.11.1   Introduction
     3.11.2   Determine Spot Ellipse Overlap (analytical) - LRL_OVQ
     3.11.3   Determine Spot Ellipse Overlap (using mask) - LRL_OVM
3.12 Miscellaneous Routines
     3.12.1   Introduction
     3.12.2   Highest Common Factor of Two Numbers - LRL_HCF
     3.12.3   Convert Between Real and Reciprocal Cells - LRL_RECCEL
     3.12.4   Get Nodal Index from Indices - LRL_NODIDX

CHAPTER 4: LDM RELATED FUNCTIONS (LFN)

4.1  INTRODUCTION
4.2  Crystal Orientation Refinement
     4.2.1    Introduction
     4.2.2    Refine Orientation Parameters - LFN_RFN
     4.2.3    List Refined Parameter Values - LFN_SHOWREF
     4.2.4    List Refined Values for XDL_VIEW - LFN_SHOW_XDL
     4.2.5    Automatic Orientation Refinement - LFN_AUTO_REFN
     4.2.6    Log Automatic Refinement Results - LFN_REFN_LOG
     4.2.7    Log Automatic Refinement Errors - LFN_REFN_ERR
     4.2.8    Get Nodals Histogram Data - LFN_NODHIST
     4.2.9    Get Refinement Nodals List - LFN_GET_SPOTS
     4.2.10   Clear Observations List - LFN_CLROBS
     4.2.11   Add Spot to Refinement Observations List - LFN_ADDOBS
     4.2.12   Get Spot from Refinement Observations List - LFN_GETOBS
     4.2.13   Get Number of Refinement Observations - LFN_NUMOBS
     4.2.14   Get Spot Position - LFN_SPOT_CG
     4.2.15   Get Radially Masked Spot Position - LFN_SPOT_RD
4.3  In Memory Image Routines
     4.3.1    Introduction
     4.3.2    Read Section from Image in Memory - LFN_IMG_RECT
4.4  Integration and Soft Limit Routines
     4.4.1    Introduction
     4.4.2    Standalone Integration Routine - LFN_SAINT
     4.4.3    Integration Parameter Defaults - LFN_SAINT_DF
     4.4.4    Get Profile Parameters - LFN_GET_PROFPARS
     4.4.5    Get Profile Maximum - LFN_GET_PROFMAX
     4.4.6    Get Spot Profile - LFN_GET_PROFILE
     4.4.7    Get Profile Pixel Details - LFN_GET_PROFPIX
     4.4.8    Get Integrated Spot Parameters - LFN_GET_SPOTPARS
     4.4.9    Get Integrated Spot Code - LFN_GET_SPOTCODE
     4.4.10   Get Integrated Spot Data - LFN_GET_INTSPOT
     4.4.11   Get Spot Pixel Details - LFN_GET_SPOTPIX
     4.4.12   Write Spot Profiles - LFN_LIST_PROFS
     4.4.13   List Integrated Spot Details - LFN_LIST_INTSPOT
     4.4.14   Basic Integration Statistics - LFN_INT_STATS1
     4.4.15   Integration Statistics Table 1 - LFN_INT_TAB1
     4.4.16   Find Improved Soft Limit - LFN_SOFT
     4.4.17   List Soft Limit Results - LFN_SOFT_LIST
     4.4.18   Automatic Soft Limit Determination - LFN_AUTO_SOFT
     4.4.19   Soft Limits Determination Defaults - LFN_SOFT_DF
     4.4.20   Log Automatic Soft Limits Errors - LFN_SOFT_ERR
     4.4.21   Monitor Automatic Soft Limits Steps - LFN_SOFT_MON
     4.4.22   Monitor Integration Progress (Dummy) - LFN_SOFT_PROG
4.5  Laue Unique Data Analysis
     4.5.1    Introduction
     4.5.2    Generate Unique Reflections List - LFN_UNQ_GEN
     4.5.3    Re-initialise Unique Reflections Counts - LFN_UNQ_RESET
     4.5.4    Get Indices of a Unique Reflection - LFN_UNQ_HKL
     4.5.5    Increment Counts in Unique Reflections List - LFN_UNQ_INC
     4.5.6    Get Reflection Counts - LFN_UNQ_GET
     4.5.7    Statistics Relative to Unique Data - LFN_UNQ_STAT
     4.5.8    Statistics Table 1 Versus Unique Data - LFN_UNQ_TAB1
     4.5.9    Statistics Table 2 Versus Unique Data - LFN_UNQ_TAB2
     4.5.10   Statistics Table 3 Versus Unique Data - LFN_UNQ_TAB3
4.6  Determine Spot Positions and Sizes
     4.6.1    Introduction
     4.6.2    Find Spot Positions in an Image - LFN_FINDSPOTS
     4.6.3    Analyse the Spots List - LFN_SPOTS_ANALYSE
     4.6.4    List Spot Size Analysis Results - LFN_SPOTS_ANA_LIS
4.7  Dummy Cancel Routine
     4.7.1    Introduction
     4.7.2    Dummy Cancel Routine - LFN_DUMMY_CNCL
4.8  Create .ge1/.ge2 files
     4.8.1    Introduction
     4.8.2    Create .ge1/.ge2 Files from LIRL - LFN_LIRLGE
4.9  Read Data into LIRL
     4.9.1    Introduction
     4.9.2    Read Data from .ge1/.ge2 Files to LIRL - LFN_GELIRL
     4.9.3    Read Data from MTZ File to LIRL - LFN_MTZLIRL

FIGURES: CHAPTER 1

1.1  Flowchart for Reading LDM Data
1.2  Laboratory and Detector Axes
1.3  Ideal & detector axes and Camera Constants
1.4  Flowchart for Parameter Refinement
1.5  Flowchart for Soft Limits Determination


John W. Campbell
CCLRC Daresbury Laboratory
Last update 16 Jan 1998