Supply: Penn Condition University
Desk 2.2-10 (from The Penn State Agronomy Manual) Optimum corn dimension, weed dimensions for postponed preemergence/early postemergence herbicide programs.
Find particular herbicide label(beds) for additional information on application. This type of software generally is usually utilized when climate situations preclude the make use of of a standard pre足introduction plan. For most products, perform not utilize in liquefied fertilizer if com provides emerged. Poor control from recurring herbicides may result if yearly grasses such as foxtail and panicum have surfaced at the time of application; tank-mix with item that regulates surfaced grasses. Delayed preemergence/earlier postemergence programs can work properly with herbicide-resistant corn hybrids today obtainable (at the.gary the gadget guy., Roundup Set and Libertylink). Whén tánk-mixing with additional pesticides, adhere to the nearly all restrictive product brand.
Method B: Fields’ angle 2.1.2.1. Development steps 1. Entering Fields’ angle in “System Explorer” (The field angles are equivalent to propagation angle of the Multi-Spot orders) Example for defining a 5 spot beam splitter with separation angle of 0.1 degrees Lens Data editor example. Jul 8, 2011 - Radiant ZEMAX LLC (RZ) provides this publication 'as is' without warranty of any kind, either. What doesn't ZEMAX do? Maximum field.
Maximum Corn and Marijuana Dimensions
1May end up being tank-mixéd with Accent, atraziné (Harness), Banvel or Clearness, Marksman, Licenses, or Roundup (Roundup Ready corn).
2May become tank-mixed with a quantity of different products, like Accent Queen, Banvel or Clearness, Prowl, etc. Find an herbicide tag for specific information.
2May become tank-mixed with a quantity of different products, like Accent Queen, Banvel or Clearness, Prowl, etc. Find an herbicide tag for specific information.
Overview
This article identifies how to track large quantity of rays in Zemax OpticStudio using PyZDDE.
Take note:Although the DDE extension has been recently superseded by the brand-new.NET based expansion, Zemax will nearly all likely retain the DDE interface for the direct potential.
Introduction
The selection tracing module provides an simple interface to the consumer for tracing large number of rays as described in the OpticStudio manual. This module, called
arraytrace
, is usually rather self-employed of the some other components of PyZDDE, ánd it can end up being used as a “standalone” component on its very own. One can obtain significant rate improvements for doing a trace for large number of rays via extensions making use of the assortment ray looking up feature offered by OpticStudio. Number 1 even comes close the setup time for looking up a large place of sun rays using assortment ray looking up with the overall execution time for looking up the exact same amount of sun rays using solitary find per DDE contact. We have got noticed over 200x rate enhancements for doing a trace for around 10,000 sun rays. The element of improvement in delivery time furthermore seems to boost with increase in the amount of rays.The next section briefly describes the user interface functions offered by the module. Adhering to the interface area we show the efficiency benefits we observed in our trials using variety ray looking up. We after that offer four examples that demonstrate the make use of these features. A short explanation about the implementation of the array tracing component is supplied at the finish of the article.
Interface
The OpticStudio manual explains five modes of procedure for doing a trace for large amount of sun rays. Essentially, assortment ray tracing involves generating a data structure that specifies the rays and passing it to 0pticStudio in a single DDE call. OpticStudio traces the rays and transmits the tracked data back again to the customer making use of the exact same data framework. For details, please relate to the area “Tracing large number of rays” undér the “Extensions” part of the guide. The
arraytrace
component in PyZDDE supports all the five settings of range ray doing a trace for making use of two core functions and five additional helper functions. They are usually briefly defined here.The two primary functions in
arraytrace
module are usually as comes after:gétRayDataArray
- function to create the beam data framework array (the range of DDERAYDATA construction as described in the OpticStudio guide). We cán use the over two features in a Python software for tracing rays in any óf the five settings. In order to do therefore, we develop the beam data construction selection (DDERAYDATA) usingzGetTraceDirectArray- records an number of rays described by the coordinates and direction cosines at a starting surface, very similar to zGétTraceDirect
that traces one ray per DDE contact.zGetPolTraceArray- fór looking up polarized rays defined by normalized field and scholar coordinates, which is related to zGetPoITrace
that records one ray per DDE call.zGetPolTraceDirectArray- fór doing a trace for polarized sun rays described by the coordinates and direction cosines at a beginning surface area, which is definitely equivalent to zGetPoITraceDirect
that records one beam per DDE contact.zGetNSCTraceArray- traces a one ray inside a non-sequential group. Rays may split or scatter into multiple pathways. The functionality comes back the entire tree of ray data filled with divide and/or scattered sun rays.
zArrayTrace- functionality for transferring an assortment of beam data constructions to OpticStudio
getRayDataArray
, fill up up the ray data structure variety with the suitable guidelines of the rays, and complete the assortment to OpticStudio making use ofzArrayTrace
. Once the function earnings, we require to parse the suitable data from the array centered on the setting. Although the above functions are available to the consumer, the additional helper features in thezGetTraceArray
zGétTrace
that records one beam per DDE call.Make sure you critique the good examples below to observe how the over functions function.
Performance
As a gauge of overall performance gain, Number 1 even comes close the execution period for doing a trace for large place of rays using range ray looking up with the total time needed for doing a trace for the corresponding collection of rays that were traced making use of
.Figure 1: Comparison of delivery instances of number ray doing a trace for vs one ray tracing per DDE contact in two computing environments.zGetTrace
(i.y. making use of a DDE call for every beam) for multiple pieces of sun rays. We have utilized the regular Cooke Triplet 40 level field zoom lens file for this experiment. Please notice that delivery periods will vary depending upon the particular system's hardware and software program settings.Thé y-axis, which represents the execution period in milliseconds, is usually logarithmically scaled. Thé x-axis denotes the quantity of rays tracked. The strong lines represent the setup situations on a 64-bit Get 7 working on 1.30GHz Intel® Primary™ i5 (2 physical cores, 4 processors with HTT) with 16.0GC Memory and solid state memory space. The dashed ranges show performance situations on a 64-little bit Get 7 working on 1.73 GHz Intel® Primary™ i7 (4 actual physical cores, 8 processors with HTT) with 8.0GC Ram memory and traditional HDD. The much better efficiency in the dual-core i5 machine over the quad-core i actually7 device is (nearly all most likely) due to the larger Memory and solid-state memory in the former.arraytracecomponent. The helper functions are likely to be are slightly slower likened to :
zGetTrace
can make a DDE contact from Python tó OpticStudio for évery individual ray tracked.zGetTraceArray
, which will be the array-based comparative ofzGetTrace
, accepts lists of ray parameters, produces the appropriate ray data framework and demand OpticStudio to trace the sun rays in a single DDE contact. As defined previous,zArrayTrace
is definitely the core function that passes the beam data construction array to OpticStudio. It is certainly utilized byzGétTraceArray
and additional helper features such aszGétTraceDirectArray
,zGetPoITraceArray
, étc. in thezArrayTracé
because óf the use of Python lists for passing ray parameters. The story displays that there is definitely a substantial advantage of making use of array tracing features for looking up large quantity of sun rays. For example, in our experiments, doing a trace for 10609 rays usingzArrayTrace
had taken about 0.53 seconds compared to 1 minute 52 mere seconds required for tracing the same amount of sun rays making use ofzGetTrace
. That is certainly over 200x enhancement in performance. The chart also shows that while the setup period linearly increases with the number of rays forzGetTrace
functionality (traces a one ray per contact), it remains quite constant with increase in the quantity of sun rays making use of the variety ray looking up feature. Furthermore, it must become kept in thoughts that acceleration is specifically not really a forte of Python. An extension using 100 % pure C-language (e.gary the gadget guy. theArrayDemo.c
expansion sample that is definitely delivered with OpticStudio) requires under 50 milliseconds to trace 10500 sun rays. However, code growth in Python is definitely much faster, less complicated, and probably much less error vulnerable than composing program code in Chemical.Examples
Right here we existing few good examples of the assortment ray tracing features from thearraytracemodule in PyZDDE. andzArrayTracefunction creates a individual DDE link for transferring and locating ray data to/from OpticStudio. The ray tracing will be carried out on a lens file found in the Iens-data-éditor (LDE) in 0pticStudio. In this illustration, we use the zdde module only for loading and pressing the lens document into thé LDE, which couId have got been completed manually mainly because nicely. The Python script for tracing 441 sun rays is demonstrated below. Many of the ray traced information are outputted to a text file known as .
Here will be a incomplete output from the documentInstance 1
The 1st illustration we consider emulates the “ArrayDemo.m” demo supplied by OpticStudio. This will furthermore enable us to verify the output of the primary functionality with the reference provided by OpticStudio. Furthermore, it demonstrate the make use of of the two primary functions -zArrayTrace
gétRayDataArray
. Take note that thearraytrace
component is definitely standalone that can be utilized without creating an explicit DDE hyperlink. This is certainly because thearrayTrace0utput.txt
arrayTrace0utput.txt
Wé possess compared the over result to that created by “ArrayDemo.g” and found them to match up.
Example 2
The 2nd example will be functionally equal to the 1st instance, except that we use thezGetTraceArray
helper functionality. In purchase to use this functionality we construct two listings of the normalized pupil place coordinates px ánd py for thé sun rays (441 sun rays in total), and pass the listings along with the beam count number and wavelength number to the functionality. After looking up is carried out, the functionality results 13 lists (if the ray tracing has been prosperous) formulated with theerror
,con
,z .
,I
,intensity
pyzddé.zdde
component. Since we are usually not using thepyzddé.zdde
component we cannot load a zoom lens file programmatically. Consequently, this example assumes that a zoom lens file (the Cook triplet 40 degree field in this situation) had been manually packed into OpticStudio before executing the system. The illustration shows how convenient it is certainly to basically contactzGetTraceArray
rather of attempting to construct the beam data array and retrieve tracing information from the framework after the tracing finished. It also shows the convenience with which we can perform array ray tracing in OpticStudio making use of the external interface.Result from the over program code:
The use pattern of the assistant functionszGetTraceDirectArray
zGetPolTraceArray
zGetPoITraceDirectArray
are very related tozGétTraceArray
Example 3
In our next example, we discover the 5th setting of number ray looking up, which can be supplied by the function
zGetNSCTraceArray
. This mode is used for doing a trace for rays inside of á non-sequential team. It is definitely various from the other modes in that just one ray is chosen to the function; nevertheless, the beam may divided or scatter into multiple pathways and the function results the entire shrub of ray data. The instance regarded below is certainly a Python edition of the illustration “NSCTraceDemo.chemical” offered by Zemax (found in M:System FilesZemax OpticStudioExtend). It takes on that a NSC design can be pre-loaded intó OpticStudio. Fór this instance, the design “Example 3 Grating Splits up Colour.zmx” (from …ZEMAXSamplesNon-sequentialColorimetry) has been used.Result from running the over program code:
Again, we have got likened the over result to that created by “NSCTraceDemo.m” and found them to suit.
Instance 4
The final example shows how the selection ray tracing module provides handy features in evaluating the overall performance of an optical system. This instance makes make use of of NumPy ánd Matplotlib, which are two common Python packages in medical computation. Make sure you refer to the implementation for even more information.
Body 2 displays a basic two reflection configuration made from a schwarzschild system. While the program is definitely conceptually quite simple (simply two mirrors), it provides an asymmetric fieId, and the spots vary considerably over the field. This is definitely because it is an off-axis image resolution system.
.Number 2: Two circular concentric showcases forming Schwarzschild program.A custom Full Field Spot Diagram produced using the
.Figure 3: Full field spot diagram for predefined areas. Reference containers are usually 25x25 microns.arraytrace
component is shown in Figure 3 for a set of pre-defined areas. All the places are shown on a solitary 2d plot. While the xy position of each spot is shown according to the real placement on the picture plane, the zoom of each spot can be selected for best visual look. For guide, a container of 25x25 microns is proven for each place. The deformation of the areas over the fieId-of-view is certainly clearly noticed. This piece is really equivalent to the inbuilt “Full Industry Spot Diagram” of OpticStudio.We can make more extravagant plots centered on a particular want. For instance, in Physique 4 we create a grid óf NxN field factors and use array looking up to develop spot layouts for all field factors on a solitary 2d amount. Nevertheless, this time the magnification of each spot is adapted to its RMS radius. Once again, for reference point, the container shown on each spot can be 25x25 microns. Moreover, the sun rays in the spots are colour coded by their radial scholar put together. We can instantly observe how the places shrink/ develop with lower/ increase in size of the aperture halt.
.Figure 4: Two spherical concentric showcases developing Schwarzschild program. Reference containers are usually 25x25 microns.The last plot shows how a dénser grid of spot layouts over the entire field can become utilized to produce encircled energy (EE) road directions or RMS spot size routes. Figure 5 shows the radius of the areas in microns whére 80% of the rays lay within. This can easily be adapted to compute the EE within one -pixel of a detector if preferred. The plan was produced by determining place radii for a thick grid of areas over the fieId and interpolation. Thé areas that possess been utilized for determining the radii are proven as an overIay to the storyline. Producing like plots of land by doing a trace for one beam per DDE call would need enormously large amount of time. Producing all the plots in this illustration required about 12 mere seconds on standard in our check computer which provides just 8 GB RAM.
.Shape 5: Two spherical concentric showcases forming Schwarzschild program.It should become emphasized that the general method - generate spot layouts via theA even more extensive repository of illustrations can become found within the “Illustrations” directory website of PyZDDE. Few examples that show a particular aspect of the selection ray tracing module (
arraytrace
) may end up being discovered at Number ray looking up examples.Implementation
Zemax provides a C-language referrals execution of a DDE client, known as 'zclient.m'. The present edition of theAs PyZDDE aims to make use of modules just from the regular Python library, NumPy has been deliberately not utilized in
arraytrace
component. Nevertheless, if preferred, the user can use NumPy arrays to create the ray data structure variety and complete it to OpticStudio using the functionzArrayTrace
. Another option is certainly to convert the NumPy arrays to lists (at the.g. making use of thetolist
technique) before moving the arrays to the assistant features for array ray tracing as shown in the fourth example in this article.At the period of this composing, emphasis was given to the corréctness of the function rather than functionality. Future versions may possess improved efficiency.
Last ideas
We presented the
arraytrace
component of PyZDDE, and proven that we can anticipate large overall performance increases when looking up large number of sun rays making use of the variety tracing function offered by OpticStudio. We have also proven that it is definitely relatively easy to setup and carry out array looking up making use of the helper functions in the module.AcknowIedgements
Thé authors would like to thank Ian Rousseau for conversations and initial implementation tips about the array ray tracing component.
Writers
This content is authored by Indranil Sinharóy, and Julian Stuérmer.