# How to Isosurface for nc/netcdf Data?

**URL:** https://discourse.vtk.org/t/how-to-isosurface-for-nc-netcdf-data/2448
**Category:** Support
**Created:** [January 17, 2020, 3:20pm UTC](https://discourse.vtk.org/t/how-to-isosurface-for-nc-netcdf-data/2448 "2020-01-17T15:20:27Z")
**Posts on this page:** 1
**Showing post:** 9

<div class="post-metadata">

### Author: ![Alex1](https://discourse.vtk.org/letter_avatar_proxy/v4/letter/a/898d66/32.png) [@Alex1](https://discourse.vtk.org/u/Alex1)
#### Post date: [March 5, 2020, 6:52pm UTC](https://discourse.vtk.org/t/how-to-isosurface-for-nc-netcdf-data/2448/9 "2020-03-05T18:52:52Z")

</div>

I have a solution for my Problem to use `vtkAssignAttribute` and `vtkDataSetSurfaceFilter`  
Here the full code:

````auto
    vtkSmartPointer<vtkNetCDFCFReader> cdfCFReader = vtkSmartPointer<vtkNetCDFCFReader>::New();
    cdfCFReader->SetFileName(filenameNC.c_str());
    cdfCFReader->UpdateMetaData();
    cdfCFReader->SetVariableArrayStatus("ql_3D", 1);
    cdfCFReader->Update();

    vtkSmartPointer<vtkAssignAttribute> assignAttribute = vtkSmartPointer<vtkAssignAttribute>::New();
    assignAttribute->SetInputConnection(cdfCFReader->GetOutputPort());
    assignAttribute->Assign("ql_3D", "SCALARS", "POINT_DATA");
    
 
    vtkSmartPointer<vtkContourFilter> contour = vtkSmartPointer<vtkContourFilter>::New();
    contour->SetInputConnection(assignAttribute->GetOutputPort());
    contour->GenerateValues(10, 0.0, 0.257);

    vtkSmartPointer<vtkDataSetSurfaceFilter> surfaceFilter = vtkSmartPointer<vtkDataSetSurfaceFilter>::New();
    surfaceFilter->SetInputConnection(contour->GetOutputPort());

    vtkSmartPointer<vtkPolyDataMapper> polyMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
    polyMapper->SetInputConnection(surfaceFilter->GetOutputPort());
    //polyMapper->SetScalarRange(0, 0.257);

    vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New();
    actor->SetMapper(polyMapper);

    vtkSmartPointer<vtkRenderer> = vtkSmartPointer<vtkRenderer>::New();
    renderer->AddActor(actor);
	
    vtkSmartPointer<vtkRenderWindow> renWin = vtkSmartPointer<vtkRenderWindow>::New();
    renWin->AddRenderer(renderer);
    renWin->Render();```

![grafik|506x500](upload://nD7XXQUXjxx2xS9h2UN1uolBE4A.png)
````

---

_[View the full topic](https://discourse.vtk.org/t/how-to-isosurface-for-nc-netcdf-data/2448)._
