About Mark

Mark Piper

Mark Piper is the IDL Product Manager. He has been at Exelis Visual Information Solutions for over 13 years and has been working with IDL for almost 20. Mark has a PhD in Astrophysical, Planetary and Atmospheric Sciences from the University of Colorado at Boulder. He loves to solve scientific programming and visualization problems with IDL and play Ultimate Frisbee. Follow him on Twitter: @TheIDLGuy.

9 Responses to About Mark

  1. Chris O'Dell says:

    Mark,
    I am trying to read an ECMWF GRIB2 file with some of your returns. I am using IDL 8.2. No matter which routine I try, it always seg faults. The file is huge; it is a ~T990 output from the ecmwf forecast, and comes in at 1.5 GB. It has hundreds of fields and thousands of records. I imagine there is a memory problem somewhere, though my machine should have plenty. I can read it with wgrib2, but not the IDL routines. Can you help?

  2. Very beautiful … Thank you for this wonderful effort

  3. Joshua says:

    Hi Mark, I keep getting the following error when trying to use new graphics to plot something to the screen, any tips?

    Thank you.
    ======================================
    % Internal error: Unable to set pixel format.
    % IDLITWINDOW::ONEXPOSE: Unable to acquire device context.
    % Unable to acquire device context.
    % Execution halted at: $MAIN$
    ======================================

  4. Pingback: ENVI and IDL User Group at 2012 AGU Fall Meeting | The IDL Data Point

  5. Guillaume says:

    Hi Mark, I get the following error when trying to import some grib data using your “grib_get_record” routine:
    GRIB_API ERROR : unable to get values as double array (Function not yet implemented)
    GRIB_API ERROR : unable to create iterator
    % GRIB_GET_RECORD: GRIB_GET: Function not yet implemented
    Do you know if there is a way to deal with it or do I have to wait for an update from IDL guys ?
    Thanks,
    Guillaume

  6. Mark,

    I have matching data, longitude, and latitude arrays. These data can be geographically displayed using the map_patch function. However, I need a geoTIFF file. In the past, I have been able to resample data onto a linear longitude/latitude array and use geotrags you provided me with the simple projection to write a geoTIFF file. However, I now have data cross the poles. Hence, I cannot easily map into a linear long/lat grid. Is there a general way that will allow me to write a use the arrays of data, longitude, and latitude into a geoTIFF file of arbitrary projection. Thanks for any guidance you can provide.

    Frank Monaldo,
    Johns Hopkins APL.

  7. Jack Saba says:

    Hi Mark,
    I’ve been playing with polar stereographic projections with the new MAP function. Using box axes, it takes a bit of manipulating, but I can get the labels oriented sensibly. However, while I want a box style axis for longitude, I do NOT want one for latitudes in this projection for maps centered at the pole. Is there a way to keep the one, and delete the other? FWIW, here’s the code used to generate the image I’m looking at.

    ;…Basic Polar-stereographic map of the Arctic region.
    map = MAP( ‘Polar Stereographic’, $
    ELLIPSOID=’WGS84′, $
    LIMIT=[55, 0, 90, 360], $
    CENTER_LONGITUDE=315, $
    TRUE_SCALE_LATITUDE=70, $
    FILL_COLOR = “light blue”, $
    POSITION=[0.15,0.15,0.85,0.85], $
    FONT_SIZE=10 )
    mc = MAPCONTINENTS( /COUNTRIES,FILL_COLOR=”light green”, COMBINE=0 )

    ;…Convert the grid to box axes
    grid = map.MAPGRID
    grid.BOX_AXES = 1
    grid.LINESTYLE = “dotted”
    grid.GRID_LONGITUDE=45
    grid.LABEL_POSITION = 0

    ;…Erase the latitude labels so they don’t cover data
    latitudes = grid.latitudes
    FOR i=0,N_ELEMENTS(Latitudes)-1 DO Latitudes[i].Label_Show = 0

    ;…BUT HOW DO YOU ERASE THE LATITUDE PART OF THE BOX AXES?

    ;…Change the orientation of the longitudes that are upside down. This
    ;…requires changing their positions as well.
    longitudes = grid.longitudes
    ; 0 degs
    Longitudes[0].Label_Angle = -45
    Longitudes[0].Label_Align = -0.4
    Longitudes[0].Label_VAlign = 0.5
    ; 360 degs at same location as 0 deg.
    Longitudes[8].Label_Show = 0
    ; 45 deg E
    Longitudes[1].Label_Angle = 0
    Longitudes[1].Label_Align = -0.4
    Longitudes[1].Label_VAlign = 0.5
    ; 90 deg E
    Longitudes[2].Label_Angle = 45
    Longitudes[2].Label_Align = -0.4
    Longitudes[2].Label_VAlign = 0.5
    ; 135 deg E (top)
    Longitudes[3].Label_Angle = 0
    Longitudes[3].Label_Align = 0.5
    Longitudes[3].Label_VAlign = -0.8
    ; 45 deg W (bottom)
    Longitudes[7].Label_Angle = 0
    Longitudes[7].Label_Align = 0.5
    Longitudes[7].Label_VAlign = 1.8

    end

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s